package org.geogebra.web.web.euclidian; import org.geogebra.common.gui.dialog.options.model.LineStyleModel; import org.geogebra.common.gui.dialog.options.model.LineStyleModel.ILineStyleListener; import org.geogebra.common.gui.util.SelectionTable; import org.geogebra.common.kernel.geos.GeoElement; import org.geogebra.common.kernel.geos.GeoFunction; import org.geogebra.web.html5.main.AppW; import org.geogebra.web.web.gui.util.LineStylePopup; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; public class EuclidianLineStylePopup extends LineStylePopup implements ILineStyleListener { protected LineStyleModel model; public EuclidianLineStylePopup(AppW app, Integer rows, Integer columns, SelectionTable mode, boolean hasTable, boolean hasSlider) { super(app, LineStylePopup.getLineStyleIcons(), rows, columns, mode, hasTable, hasSlider, LineStylePopup.createLineStyleMap()); model = new LineStyleModel(app); model.setListener(this); this.setKeepVisible(false); getMySlider().addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { model.applyThickness(getSliderValue()); } }); } @Override public void update(Object[] geos) { updatePanel(geos); } @Override public Object updatePanel(Object[] geos) { model.setGeos(geos); if (!model.hasGeos()) { this.setVisible(false); return null; } boolean geosOK = model.checkGeos(); this.setVisible(geosOK); if (geosOK) { model.updateProperties(); GeoElement geo0 = model.getGeoAt(0); if (hasSlider()) { setSliderValue(geo0.getLineThickness()); } showTableItem(5, geo0 instanceof GeoFunction); selectLineType(geo0.getLineType()); } return this; } @Override public void handlePopupActionEvent() { model.applyLineTypeFromIndex(getSelectedIndex()); getMyPopup().hide(); } @Override public void setThicknessSliderValue(int value) { getMySlider().setValue(value); } @Override public void setThicknessSliderMinimum(int minimum) { getMySlider().setMinimum(minimum); } @Override public void selectCommonLineStyle(boolean equalStyle, int type) { selectLineType(type); } @Override public void setLineTypeVisible(boolean value) { // TODO Auto-generated method stub } @Override public void setLineStyleHiddenVisible(boolean value) { // TODO Auto-generated method stub } @Override public void selectCommonLineStyleHidden(boolean equalStyle, int type) { // TODO Auto-generated method stub } @Override public void setOpacitySliderValue(int value) { // TODO Auto-generated method stub } @Override public void setLineOpacityVisible(boolean value) { // TODO Auto-generated method stub } }