1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
/*
* ViewFactory.java 28 oct. 2008
*
* Sweet Home 3D, Copyright (c) 2008 Emmanuel PUYBARET / eTeks <info@eteks.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.eteks.sweethome3d.viewcontroller;
import com.eteks.sweethome3d.model.BackgroundImage;
import com.eteks.sweethome3d.model.CatalogPieceOfFurniture;
import com.eteks.sweethome3d.model.CatalogTexture;
import com.eteks.sweethome3d.model.FurnitureCatalog;
import com.eteks.sweethome3d.model.Home;
import com.eteks.sweethome3d.model.UserPreferences;
/**
* A factory that specifies how to create the views displayed in Sweet Home 3D.
* @author Emmanuel Puybaret
*/
public interface ViewFactory {
/**
* Returns a new view that displays furniture <code>catalog</code>.
*/
public abstract View createFurnitureCatalogView(FurnitureCatalog catalog,
UserPreferences preferences,
FurnitureCatalogController furnitureCatalogController);
/**
* Returns a new view that displays <code>home</code> furniture list.
*/
public abstract View createFurnitureView(Home home, UserPreferences preferences,
FurnitureController furnitureController);
/**
* Returns a new view that displays <code>home</code> on a plan.
*/
public abstract PlanView createPlanView(Home home, UserPreferences preferences,
PlanController planController);
/**
* Returns a new view that displays <code>home</code> in 3D.
*/
public abstract View createView3D(Home home, UserPreferences preferences,
HomeController3D homeController3D);
/**
* Returns a new view that displays <code>home</code> and its sub views.
*/
public abstract HomeView createHomeView(Home home, UserPreferences preferences,
HomeController homeController);
/**
* Returns a new view that displays a wizard.
*/
public abstract DialogView createWizardView(UserPreferences preferences,
WizardController wizardController);
/**
* Returns a new view that displays the different steps that helps the user to choose a background image.
*/
public abstract View createBackgroundImageWizardStepsView(
BackgroundImage backgroundImage,
UserPreferences preferences,
BackgroundImageWizardController backgroundImageWizardController);
/**
* Returns a new view that displays the different steps that helps the user to import furniture.
*/
public abstract ImportedFurnitureWizardStepsView createImportedFurnitureWizardStepsView(
CatalogPieceOfFurniture piece,
String modelName, boolean importHomePiece,
UserPreferences preferences,
ImportedFurnitureWizardController importedFurnitureWizardController);
/**
* Returns a new view that displays the different steps that helps the user to import a texture.
*/
public abstract View createImportedTextureWizardStepsView(
CatalogTexture texture, String textureName,
UserPreferences preferences,
ImportedTextureWizardController importedTextureWizardController);
/**
* Returns a new view that displays message for a threaded task.
*/
public abstract ThreadedTaskView createThreadedTaskView(String taskMessage,
UserPreferences userPreferences,
ThreadedTaskController threadedTaskController);
/**
* Returns a new view that edits user preferences.
*/
public abstract DialogView createUserPreferencesView(
UserPreferences preferences,
UserPreferencesController userPreferencesController);
/**
* Returns a new view that edits level values.
*/
public abstract DialogView createLevelView(UserPreferences preferences, LevelController levelController);
/**
* Returns a new view that edits furniture values.
*/
public abstract DialogView createHomeFurnitureView(UserPreferences preferences,
HomeFurnitureController homeFurnitureController);
/**
* Returns a new view that edits wall values.
*/
public abstract DialogView createWallView(UserPreferences preferences,
WallController wallController);
/**
* Returns a new view that edits room values.
*/
public abstract DialogView createRoomView(UserPreferences preferences,
RoomController roomController);
/**
* Returns a new view that edits polyline values.
* @since 5.0
*/
public abstract DialogView createPolylineView(UserPreferences preferences,
PolylineController polylineController);
/**
* Returns a new view that edits label values.
*/
public abstract DialogView createLabelView(boolean modification,
UserPreferences preferences,
LabelController labelController);
/**
* Returns a new view that edits compass values.
*/
public abstract DialogView createCompassView(UserPreferences preferences,
CompassController compassController);
/**
* Returns a new view that edits observer camera values.
*/
public abstract DialogView createObserverCameraView(UserPreferences preferences,
ObserverCameraController home3DAttributesController);
/**
* Returns a new view that edits 3D attributes.
*/
public abstract DialogView createHome3DAttributesView(UserPreferences preferences,
Home3DAttributesController home3DAttributesController);
/**
* Returns a new view that edits the texture of its controller.
*/
public abstract TextureChoiceView createTextureChoiceView(UserPreferences preferences,
TextureChoiceController textureChoiceController);
/**
* Returns a new view that edits the baseboard of its controller.
*/
public abstract View createBaseboardChoiceView(UserPreferences preferences,
BaseboardChoiceController baseboardChoiceController);
/**
* Returns a new view that edits the materials of its controller.
*/
public abstract View createModelMaterialsView(UserPreferences preferences,
ModelMaterialsController modelMaterialsController);
/**
* Creates a new view that edits page setup.
*/
public abstract DialogView createPageSetupView(UserPreferences preferences,
PageSetupController pageSetupController);
/**
* Returns a new view that displays home print preview.
*/
public abstract DialogView createPrintPreviewView(Home home,
UserPreferences preferences,
HomeController homeController,
PrintPreviewController printPreviewController);
/**
* Returns a new view able to compute a photo realistic image of a home.
*/
public abstract DialogView createPhotoView(Home home, UserPreferences preferences,
PhotoController photoController);
/**
* Returns a new view able to compute a photos of a home from its stored points of view.
*/
public abstract DialogView createPhotosView(Home home, UserPreferences preferences,
PhotosController photosController);
/**
* Returns a new view able to compute a 3D video of a home.
*/
// public abstract DialogView createVideoView(Home home, UserPreferences preferences,
// VideoController videoController);
/**
* Returns a new view that displays Sweet Home 3D help.
*/
public abstract HelpView createHelpView(UserPreferences preferences,
HelpController helpController);
}
|