package org.geogebra.desktop.geogebra3D.gui.view.properties; import org.geogebra.common.euclidian.EuclidianView; import org.geogebra.common.main.App; import org.geogebra.common.main.OptionType; import org.geogebra.desktop.geogebra3D.App3D; import org.geogebra.desktop.geogebra3D.gui.dialogs.options.OptionsEuclidian3DD; import org.geogebra.desktop.gui.dialog.options.OptionPanelD; import org.geogebra.desktop.gui.dialog.options.OptionsEuclidianD; import org.geogebra.desktop.gui.dialog.options.OptionsEuclidianForPlaneD; import org.geogebra.desktop.gui.view.properties.PropertiesStyleBarD; import org.geogebra.desktop.gui.view.properties.PropertiesViewD; import org.geogebra.desktop.main.AppD; /** * Just adding 3D view for properties * * @author mathieu * */ public class PropertiesView3DD extends PropertiesViewD { private OptionsEuclidianD euclidianPanel3D; private OptionsEuclidianForPlaneD euclidianForPlanePanel; /** * Constructor * * @param app * application */ public PropertiesView3DD(AppD app) { super(app); } @Override public OptionPanelD getOptionPanel(OptionType type) { switch (type) { case EUCLIDIAN3D: if (euclidianPanel3D == null) { euclidianPanel3D = new OptionsEuclidian3DD((AppD) app, ((App3D) app).getEuclidianView3D()); euclidianPanel3D.setLabels(); } return euclidianPanel3D; case EUCLIDIAN_FOR_PLANE: EuclidianView view = app.getActiveEuclidianView(); if (!view.isViewForPlane()) { view = app.getViewForPlaneVisible(); } if (euclidianForPlanePanel == null) { euclidianForPlanePanel = new OptionsEuclidianForPlaneD( (AppD) app, view); euclidianForPlanePanel.setLabels(); } else { euclidianForPlanePanel.updateView(view); euclidianForPlanePanel.setLabels(); } return euclidianForPlanePanel; } return super.getOptionPanel(type); } @Override public void setLabels() { super.setLabels(); if (euclidianPanel3D != null) { euclidianPanel3D.setLabels(); } if (euclidianForPlanePanel != null) { euclidianForPlanePanel.setLabels(); } } @Override public void updateFonts() { if (isIniting) { return; } super.updateFonts(); if (euclidianPanel3D != null) { euclidianPanel3D.updateFont(); } if (euclidianForPlanePanel != null) { euclidianForPlanePanel.updateFont(); } } @Override protected PropertiesStyleBarD newPropertiesStyleBar() { return new PropertiesStyleBar3DD(this, (AppD) app); } @Override public void updatePanelGUI(int id) { if (id == App.VIEW_EUCLIDIAN3D && euclidianPanel3D != null) { euclidianPanel3D.updateGUI(); } else { super.updatePanelGUI(id); } } }