package org.geogebra.web.geogebra3D.web.gui.view.properties;
import org.geogebra.common.euclidian.EuclidianView;
import org.geogebra.common.main.OptionType;
import org.geogebra.web.geogebra3D.web.euclidian3D.EuclidianView3DW;
import org.geogebra.web.geogebra3D.web.gui.dialog.options.OptionsEuclidian3DW;
import org.geogebra.web.geogebra3D.web.gui.dialog.options.OptionsEuclidianForPlaneW;
import org.geogebra.web.html5.main.AppW;
import org.geogebra.web.web.gui.dialog.options.OptionPanelW;
import org.geogebra.web.web.gui.dialog.options.OptionsEuclidianW;
import org.geogebra.web.web.gui.properties.PropertiesStyleBarW;
import org.geogebra.web.web.gui.properties.PropertiesViewW;
/**
* Just adding 3D view for properties
*
* @author mathieu
*
*/
public class PropertiesView3DW extends PropertiesViewW {
private OptionsEuclidianW euclidianPanel3D, euclidianForPlanePanel;
/**
* Constructor
*
* @param app
* application
* @param op
* selected option on start
*/
public PropertiesView3DW(AppW app, OptionType op) {
super(app, op);
}
@Override
public OptionPanelW getOptionPanel(OptionType type, int subType) {
switch (type) {
case EUCLIDIAN3D:
if (euclidianPanel3D == null) {
euclidianPanel3D = new OptionsEuclidian3DW((AppW) app,
app.getEuclidianView3D());
euclidianPanel3D.setLabels();
euclidianPanel3D.setView((EuclidianView3DW) app
.getEuclidianView3D());
euclidianPanel3D.showCbView(false);
}
return euclidianPanel3D;
case EUCLIDIAN_FOR_PLANE:
EuclidianView view = app.getActiveEuclidianView();
if (!view.isViewForPlane()) {
view = app.getViewForPlaneVisible();
}
if (euclidianForPlanePanel == null) {
euclidianForPlanePanel = new OptionsEuclidianForPlaneW(
(AppW) app, view);
euclidianForPlanePanel.setLabels();
} else {
euclidianForPlanePanel.updateView(view);
euclidianForPlanePanel.setLabels();
}
return euclidianForPlanePanel;
}
return super.getOptionPanel(type, subType);
}
@Override
protected PropertiesStyleBarW newPropertiesStyleBar() {
return new PropertiesStyleBar3DW(this, (AppW) app);
}
}