46
47
import com.eteks.sweethome3d.j3d.Component3DManager;
47
48
import com.eteks.sweethome3d.j3d.ModelManager;
48
49
import com.eteks.sweethome3d.j3d.TextureManager;
49
import com.eteks.sweethome3d.model.BackgroundImage;
50
import com.eteks.sweethome3d.model.CatalogPieceOfFurniture;
51
import com.eteks.sweethome3d.model.CatalogTexture;
52
import com.eteks.sweethome3d.model.FurnitureCatalog;
53
50
import com.eteks.sweethome3d.model.Home;
54
51
import com.eteks.sweethome3d.model.InterruptedRecorderException;
52
import com.eteks.sweethome3d.model.Library;
55
53
import com.eteks.sweethome3d.model.RecorderException;
56
54
import com.eteks.sweethome3d.model.UserPreferences;
57
55
import com.eteks.sweethome3d.swing.HomeComponent3D;
58
56
import com.eteks.sweethome3d.swing.ThreadedTaskPanel;
59
57
import com.eteks.sweethome3d.tools.OperatingSystem;
60
import com.eteks.sweethome3d.viewcontroller.BackgroundImageWizardController;
61
import com.eteks.sweethome3d.viewcontroller.CompassController;
62
import com.eteks.sweethome3d.viewcontroller.DialogView;
63
import com.eteks.sweethome3d.viewcontroller.FurnitureCatalogController;
64
import com.eteks.sweethome3d.viewcontroller.FurnitureController;
65
import com.eteks.sweethome3d.viewcontroller.HelpController;
66
import com.eteks.sweethome3d.viewcontroller.HelpView;
67
import com.eteks.sweethome3d.viewcontroller.Home3DAttributesController;
68
import com.eteks.sweethome3d.viewcontroller.HomeController;
69
58
import com.eteks.sweethome3d.viewcontroller.HomeController3D;
70
import com.eteks.sweethome3d.viewcontroller.HomeFurnitureController;
71
import com.eteks.sweethome3d.viewcontroller.HomeView;
72
import com.eteks.sweethome3d.viewcontroller.ImportedFurnitureWizardController;
73
import com.eteks.sweethome3d.viewcontroller.ImportedFurnitureWizardStepsView;
74
import com.eteks.sweethome3d.viewcontroller.ImportedTextureWizardController;
75
import com.eteks.sweethome3d.viewcontroller.LabelController;
76
import com.eteks.sweethome3d.viewcontroller.LevelController;
77
import com.eteks.sweethome3d.viewcontroller.ObserverCameraController;
78
import com.eteks.sweethome3d.viewcontroller.VideoController;
79
import com.eteks.sweethome3d.viewcontroller.PageSetupController;
80
import com.eteks.sweethome3d.viewcontroller.PhotoController;
81
import com.eteks.sweethome3d.viewcontroller.PlanController;
82
import com.eteks.sweethome3d.viewcontroller.PlanView;
83
import com.eteks.sweethome3d.viewcontroller.PrintPreviewController;
84
import com.eteks.sweethome3d.viewcontroller.RoomController;
85
import com.eteks.sweethome3d.viewcontroller.TextureChoiceController;
86
import com.eteks.sweethome3d.viewcontroller.TextureChoiceView;
87
59
import com.eteks.sweethome3d.viewcontroller.ThreadedTaskController;
88
60
import com.eteks.sweethome3d.viewcontroller.ThreadedTaskView;
89
import com.eteks.sweethome3d.viewcontroller.UserPreferencesController;
90
61
import com.eteks.sweethome3d.viewcontroller.View;
91
62
import com.eteks.sweethome3d.viewcontroller.ViewFactory;
92
import com.eteks.sweethome3d.viewcontroller.WallController;
93
import com.eteks.sweethome3d.viewcontroller.WizardController;
63
import com.eteks.sweethome3d.viewcontroller.ViewFactoryAdapter;
96
66
* Helper for {@link SweetHome3DViewer SweetHome3DViewer}. This class is public
149
124
// Create a view factory able to instantiate only a 3D view and a threaded task view
150
final ViewFactory viewFactory = new ViewFactory() {
151
public View createBackgroundImageWizardStepsView(BackgroundImage backgroundImage, UserPreferences preferences,
152
BackgroundImageWizardController backgroundImageWizardController) {
153
throw new UnsupportedOperationException();
156
public View createFurnitureCatalogView(FurnitureCatalog catalog, UserPreferences preferences,
157
FurnitureCatalogController furnitureCatalogController) {
158
throw new UnsupportedOperationException();
161
public View createFurnitureView(Home home, UserPreferences preferences, FurnitureController furnitureController) {
162
throw new UnsupportedOperationException();
165
public HelpView createHelpView(UserPreferences preferences, HelpController helpController) {
166
throw new UnsupportedOperationException();
169
public DialogView createHome3DAttributesView(UserPreferences preferences,
170
Home3DAttributesController home3DAttributesController) {
171
throw new UnsupportedOperationException();
174
public DialogView createLevelView(UserPreferences preferences, LevelController levelController) {
175
throw new UnsupportedOperationException();
178
public DialogView createHomeFurnitureView(UserPreferences preferences,
179
HomeFurnitureController homeFurnitureController) {
180
throw new UnsupportedOperationException();
183
public HomeView createHomeView(Home home, UserPreferences preferences, HomeController homeController) {
184
throw new UnsupportedOperationException();
187
public ImportedFurnitureWizardStepsView createImportedFurnitureWizardStepsView(CatalogPieceOfFurniture piece,
188
String modelName, boolean importHomePiece, UserPreferences preferences,
189
ImportedFurnitureWizardController importedFurnitureWizardController) {
190
throw new UnsupportedOperationException();
193
public View createImportedTextureWizardStepsView(CatalogTexture texture, String textureName,
194
UserPreferences preferences,
195
ImportedTextureWizardController importedTextureWizardController) {
196
throw new UnsupportedOperationException();
199
public DialogView createLabelView(boolean modification, UserPreferences preferences,
200
LabelController labelController) {
201
throw new UnsupportedOperationException();
204
public DialogView createPageSetupView(UserPreferences preferences, PageSetupController pageSetupController) {
205
throw new UnsupportedOperationException();
208
public PlanView createPlanView(Home home, UserPreferences preferences, PlanController planController) {
209
throw new UnsupportedOperationException();
212
public DialogView createPrintPreviewView(Home home, UserPreferences preferences, HomeController homeController,
213
PrintPreviewController printPreviewController) {
214
throw new UnsupportedOperationException();
217
public DialogView createRoomView(UserPreferences preferences, RoomController roomController) {
218
throw new UnsupportedOperationException();
221
public DialogView createCompassView(UserPreferences preferences, CompassController compassController) {
222
throw new UnsupportedOperationException();
225
public DialogView createObserverCameraView(UserPreferences preferences,
226
ObserverCameraController home3dAttributesController) {
227
throw new UnsupportedOperationException();
230
public TextureChoiceView createTextureChoiceView(UserPreferences preferences,
231
TextureChoiceController textureChoiceController) {
232
throw new UnsupportedOperationException();
125
final ViewFactory viewFactory = new ViewFactoryAdapter() {
235
126
public ThreadedTaskView createThreadedTaskView(String taskMessage, UserPreferences preferences,
236
127
ThreadedTaskController controller) {
237
128
return new ThreadedTaskPanel(taskMessage, preferences, controller) {
273
159
return homeComponent3D;
276
public DialogView createWallView(UserPreferences preferences, WallController wallController) {
277
throw new UnsupportedOperationException();
280
public DialogView createWizardView(UserPreferences preferences, WizardController wizardController) {
281
throw new UnsupportedOperationException();
284
public DialogView createPhotoView(Home home, UserPreferences preferences, PhotoController photoController) {
285
throw new UnsupportedOperationException();
288
public DialogView createVideoView(Home home, UserPreferences preferences, VideoController videoController) {
289
throw new UnsupportedOperationException();
293
// Force offscreen in 3D view under Plugin 2 and Mac OS X
294
System.setProperty("com.eteks.sweethome3d.j3d.useOffScreen3DView",
295
String.valueOf(OperatingSystem.isMacOSX()
296
&& applet.getAppletContext() != null
297
&& applet.getAppletContext().getClass().getName().startsWith("sun.plugin2.applet.Plugin2Manager")));
163
// Force offscreen in 3D view under Plugin 2 / Java 6 / Mac OS X
164
if (OperatingSystem.isMacOSX()
165
&& applet.getAppletContext() != null
166
&& applet.getAppletContext().getClass().getName().startsWith("sun.plugin2.applet.Plugin2Manager")) {
167
System.setProperty("com.eteks.sweethome3d.j3d.useOffScreen3DView", "true");
299
170
initLookAndFeel();