package org.geogebra.web.web.gui.view.data; import org.geogebra.common.gui.view.data.DataAnalysisModel; import org.geogebra.common.main.App; import org.geogebra.common.main.Localization; import org.geogebra.web.html5.main.AppW; import org.geogebra.web.web.gui.images.AppResources; import org.geogebra.web.web.gui.util.MyToggleButtonW; import org.geogebra.web.web.gui.util.StyleBarW; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FlowPanel; /** * @author G. Sturr * */ public class DataAnalysisStyleBarW extends StyleBarW implements ClickHandler { private AppW app; private DataAnalysisViewW daView; private Button btnPrint; private MyToggleButtonW btnShowStatistics, btnShowPlot2, btnShowData; private MyToggleButtonW btnExport; private MyToggleButtonW btnSwapXY; /** * @param app * @param statDialog */ public DataAnalysisStyleBarW(AppW app, DataAnalysisViewW statDialog) { super(app, App.VIEW_DATA_ANALYSIS); this.daView = statDialog; this.app = app; // this.setFloatable(false); createGUI(); updateGUI(); setLabels(); addViewButton(); } private void createGUI() { this.clear(); btnPrint = new Button("P"); // btnPrint.app.getImageIcon("document-print.png")); btnPrint.addClickHandler(this); btnShowStatistics = new MyToggleButtonW(AppResources.INSTANCE.dataview_showstatistics()); btnShowStatistics.addClickHandler(this); btnShowData = new MyToggleButtonW(AppResources.INSTANCE.dataview_showdata()); btnShowData.addClickHandler(this); btnShowPlot2 = new MyToggleButtonW(AppResources.INSTANCE.dataview_showplot2()); btnShowPlot2.addClickHandler(this); // create export button btnExport = new MyToggleButtonW(AppResources.INSTANCE.export()); btnExport.addClickHandler(this); btnSwapXY = new MyToggleButtonW(getSwapXYString(app.getLocalization())); btnSwapXY.setSelected(!daView.getController().isLeftToRight()); btnSwapXY.addClickHandler(this); btnSwapXY.getElement().addClassName("daSwapXYButton"); buildRoundingButton(); createDataSourcePanel(); // add(btnRounding); // add(btnDataSource); // addSeparator(); add(btnShowStatistics); add(btnShowData); add(btnShowPlot2); add(btnSwapXY); // add(createDataSourcePanel()); } public void updateGUI() { DataAnalysisModel model = daView.getModel(); btnShowStatistics.setSelected(model.showStatPanel()); if (model.showStatPanel() && daView.getStatisticsPanel().isVisible()) { daView.getStatisticsPanel().updatePanel(); } switch (model.getMode()) { case DataAnalysisModel.MODE_ONEVAR: // if (true){//daView.groupType() == GroupType.RAWDATA) { btnShowData.setVisible(true); // } else { // btnShowData.setVisible(false); // } break; case DataAnalysisModel.MODE_REGRESSION: btnShowData.setVisible(true); break; case DataAnalysisModel.MODE_MULTIVAR: btnShowData.setVisible(false); break; default: btnShowData.setVisible(false); } btnShowData.setSelected(model.showDataPanel()); btnShowPlot2.setVisible(!model.isMultiVar()); btnShowPlot2.setSelected(model.showDataDisplayPanel2()); btnSwapXY.setVisible(model.isRegressionMode()); btnSwapXY.setSelected(!daView.getController().isLeftToRight()); } private static FlowPanel createDataSourcePanel() { // btnDataSource = new MyToggleButton2(AppResources.INSTANCE.a); // btnDataSource.addClickHandler(this); // //fldDataSource = new MyTextField(app); // FlowPanel dataSourcePanel = new FlowPanel(); // dataSourcePanel.add(btnDataSource, app.borderWest()); // dataSourcePanel.add(fldDataSource, BorderLayout.CENTER); return dataSourcePanel; } /** * Builds popup button with options menu items */ private void buildRoundingButton() { // btnRounding = new JButton(app.getImageIcon("triangle-down.png")); // btnRounding.setHorizontalTextPosition(SwingConstants.LEFT); // btnRounding.setHorizontalAlignment(SwingConstants.LEFT); /* * roundingPopup = createRoundingPopup(); * * btnRounding.addActionListener(new ActionListener(){ public void * actionPerformed(ActionEvent e) { // popup appears below the button * roundingPopup.show(getParent(), * btnRounding.getLocation().x,btnRounding.getLocation().y + * btnRounding.getHeight()); } }); * * updateMenuDecimalPlaces(roundingPopup); */ } @Override public void setLabels() { super.setLabels(); Localization loc = app.getLocalization(); btnShowStatistics.setToolTipText(loc.getMenu("ShowStatistics")); btnShowData.setToolTipText(loc.getMenu("ShowData")); btnShowPlot2.setToolTipText(loc.getMenu("ShowPlot2")); btnSwapXY.setText(getSwapXYString(loc)); } private static String getSwapXYString(Localization loc) { return loc.getMenu("Column.X") + " \u21C6 " + loc.getMenu("Column.Y"); } public void actionPerformed(Object source) { DataAnalysisModel model = daView.getModel(); if (source == btnShowStatistics) { model.setShowStatistics(btnShowStatistics.isSelected()); updateGUI(); } else if (source == btnShowData) { model.setShowDataPanel(btnShowData.isSelected()); updateGUI(); } else if (source == btnShowPlot2) { model.setShowComboPanel2(btnShowPlot2.isSelected()); updateGUI(); } else if (source == btnSwapXY) { daView.getController().swapXY(); updateGUI(); } else if (source == btnExport) { // JPopupMenu menu = daView.getExportMenu(); // menu.show(btnExport, 0, btnExport.getHeight()); btnExport.setSelected(false); } else if (source == btnPrint) { daView.doPrint(); } } @Override public void setOpen(boolean showStyleBar) { // TODO Auto-generated method stub } @Override public void onClick(ClickEvent event) { actionPerformed(event.getSource()); } }