package org.geogebra.web.geogebra3D.web.gui.view.properties;
import org.geogebra.common.main.App;
import org.geogebra.common.main.OptionType;
import org.geogebra.web.html5.main.AppW;
import org.geogebra.web.web.gui.ImageFactory;
import org.geogebra.web.web.gui.images.ImgResourceHelper;
import org.geogebra.web.web.gui.images.PerspectiveResources;
import org.geogebra.web.web.gui.properties.PropertiesStyleBarW;
import org.geogebra.web.web.gui.properties.PropertiesViewW;
import org.geogebra.web.web.gui.util.PopupMenuButtonW;
import com.google.gwt.core.shared.GWT;
/**
* Style bar for properties view (in 3D)
*
* @author mathieu
*
*/
public class PropertiesStyleBar3DW extends PropertiesStyleBarW {
/**
* constructor
*
* @param propertiesView
* properties view
* @param app
* application
*/
public PropertiesStyleBar3DW(PropertiesViewW propertiesView, AppW app) {
super(propertiesView, app);
}
@Override
protected void setIcon(OptionType type, PopupMenuButtonW btn) {
switch (type) {
case EUCLIDIAN3D :
PerspectiveResources pr = ((ImageFactory) GWT
.create(ImageFactory.class)).getPerspectiveResources();
ImgResourceHelper.setIcon(pr.menu_icon_graphics3D(), btn);
break;
case EUCLIDIAN_FOR_PLANE :
pr = ((ImageFactory) GWT
.create(ImageFactory.class)).getPerspectiveResources();
ImgResourceHelper.setIcon(pr.menu_icon_graphics_extra(), btn);
break;
default:
super.setIcon(type, btn);
break;
}
}
@Override
protected String getTypeIcon(OptionType type) {
switch (type) {
case EUCLIDIAN3D:
PerspectiveResources pr = ((ImageFactory) GWT
.create(ImageFactory.class)).getPerspectiveResources();
return ImgResourceHelper.safeURI(pr.menu_icon_graphics3D());
case EUCLIDIAN_FOR_PLANE:
pr = ((ImageFactory) GWT.create(ImageFactory.class))
.getPerspectiveResources();
return ImgResourceHelper.safeURI(pr.menu_icon_graphics_extra());
}
return super.getTypeIcon(type);
}
@Override
public void updateGUI() {
super.updateGUI();
setButtonVisible(OptionType.EUCLIDIAN3D,
app.getGuiManager().showView(App.VIEW_EUCLIDIAN3D));
setButtonVisible(OptionType.EUCLIDIAN_FOR_PLANE,
app.hasEuclidianViewForPlaneVisible());
}
@Override
protected boolean typeAvailable(OptionType type) {
return true;
}
}