package org.geogebra.desktop.gui.layout.panels; import javax.swing.ImageIcon; import javax.swing.JComponent; import org.geogebra.common.euclidian.EuclidianConstants; import org.geogebra.common.main.App; import org.geogebra.common.main.settings.SpreadsheetSettings; import org.geogebra.desktop.gui.GuiManagerD; import org.geogebra.desktop.main.AppD; import org.geogebra.desktop.util.GuiResourcesD; /** * Dock panel for the spreadsheet view. */ public class SpreadsheetDockPanel extends NavigableDockPanel { private static final long serialVersionUID = 1L; /** * @param app */ public SpreadsheetDockPanel(AppD app) { super(App.VIEW_SPREADSHEET, // view id "Spreadsheet", // view title phrase getDefaultToolbar(), // toolbar string true, // style bar? 2, // menu order 'S' // menu shortcut ); setApp(app); } private GuiManagerD getGuiManager() { return (GuiManagerD) app.getGuiManager(); } @Override protected JComponent loadStyleBar() { return getGuiManager().getSpreadsheetView().getSpreadsheetStyleBar(); } @Override protected JComponent getViewPanel() { return getGuiManager().getSpreadsheetView().getViewContainer(); } private static String getDefaultToolbar() { StringBuilder sb = new StringBuilder(); sb.append(EuclidianConstants.MODE_MOVE); sb.append(" || "); sb.append(EuclidianConstants.MODE_SPREADSHEET_ONEVARSTATS); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_TWOVARSTATS); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_MULTIVARSTATS); sb.append(" , "); sb.append(EuclidianConstants.MODE_PROBABILITY_CALCULATOR); sb.append(" || "); sb.append(EuclidianConstants.MODE_SPREADSHEET_CREATE_LIST); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_CREATE_LISTOFPOINTS); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_CREATE_MATRIX); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_CREATE_TABLETEXT); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_CREATE_POLYLINE); sb.append(" || "); sb.append(EuclidianConstants.MODE_SPREADSHEET_SUM); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_AVERAGE); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_COUNT); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_MAX); sb.append(" , "); sb.append(EuclidianConstants.MODE_SPREADSHEET_MIN); return sb.toString(); } @Override public ImageIcon getIcon() { return app.getMenuIcon(GuiResourcesD.MENU_VIEW_SPREADSHEET); } @Override public boolean isStyleBarVisible() { if (!app.isApplet()) { return true; } SpreadsheetSettings settings = app.getSettings().getSpreadsheet(); // currently no GUI / XML for hiding the style-bar // hide in applets if the row/column headers are missing return settings.showRowHeader() && settings.showColumnHeader(); } }