package org.geogebra.web.web.gui.view.spreadsheet;
import org.geogebra.common.euclidian.EuclidianConstants;
import org.geogebra.common.gui.view.spreadsheet.CreateObjectModel;
import org.geogebra.common.gui.view.spreadsheet.MyTable;
import org.geogebra.web.html5.main.AppW;
/**
* Utility class to handle toolbar menu mode changes
*
*
* @author G. Sturr
*
*/
public class SpreadsheetToolbarManagerW {
private AppW app;
private SpreadsheetViewW view;
private MyTableW table;
private CreateObjectDialogW id;
public SpreadsheetToolbarManagerW(AppW app, SpreadsheetViewW view){
this.app = app;
this.view = view;
this.table = (MyTableW) view.getSpreadsheetTable();
}
public void handleModeChange(int mode){
//Application.printStacktrace("");
table.setTableMode(MyTable.TABLE_MODE_STANDARD);
switch (mode) {
case EuclidianConstants.MODE_SPREADSHEET_CREATE_LIST:
//if(!app.getSelectedGeos().isEmpty() && prevMode == mode){
if(!table.selectedCellRanges.get(0).isEmpty()){
id = new CreateObjectDialogW(app,view, CreateObjectModel.TYPE_LIST);
id.setVisible(true);
}
break;
case EuclidianConstants.MODE_SPREADSHEET_CREATE_LISTOFPOINTS:
if(table.getCellRangeProcessor().isCreatePointListPossible(table.selectedCellRanges)){
id = new CreateObjectDialogW(app,view, CreateObjectModel.TYPE_LISTOFPOINTS);
id.setVisible(true);}
break;
case EuclidianConstants.MODE_SPREADSHEET_CREATE_MATRIX:
if (table.getCellRangeProcessor().isCreateMatrixPossible(table.selectedCellRanges)){
id = new CreateObjectDialogW(app,view, CreateObjectModel.TYPE_MATRIX);
id.setVisible(true);
}
break;
case EuclidianConstants.MODE_SPREADSHEET_CREATE_TABLETEXT:
if(table.getCellRangeProcessor().isCreateMatrixPossible(table.selectedCellRanges)){
id = new CreateObjectDialogW(app,view, CreateObjectModel.TYPE_TABLETEXT);
id.setVisible(true);
}
break;
case EuclidianConstants.MODE_SPREADSHEET_CREATE_POLYLINE:
if(table.getCellRangeProcessor().isCreatePointListPossible(table.selectedCellRanges)){
id = new CreateObjectDialogW(app,view, CreateObjectModel.TYPE_POLYLINE);
id.setVisible(true);
}
break;
case EuclidianConstants.MODE_SPREADSHEET_SUM:
case EuclidianConstants.MODE_SPREADSHEET_AVERAGE:
case EuclidianConstants.MODE_SPREADSHEET_COUNT:
case EuclidianConstants.MODE_SPREADSHEET_MIN:
case EuclidianConstants.MODE_SPREADSHEET_MAX:
// Handle autofunction modes
table.setTableMode(MyTable.TABLE_MODE_AUTOFUNCTION);
break;
default:
// ignore other modes
}
}
}