package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale.DataScale; import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale.DataScaleTable; import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel; import javax.swing.*; import java.awt.*; public class OverviewHolder { private DataScaleTable _dataScaleTable; private SimpleTable _simpleTable; public DataScaleTable getDataScaleTable() { return _dataScaleTable; } public boolean isEmpty() { return null == _dataScaleTable && null == _simpleTable; } public void setOverview(DataScaleTable dataScaleTable, boolean keepFormerRelations) { if(null != _dataScaleTable) { if (keepFormerRelations) { if (null != _dataScaleTable.getParentScaleTable()) { dataScaleTable.setParentScaleTable(_dataScaleTable.getParentScaleTable()); } if (null != _dataScaleTable.getKidScaleTable()) { dataScaleTable.setKidScaleTable(_dataScaleTable.getKidScaleTable()); } } else { dataScaleTable.setParentScaleTable(_dataScaleTable); } } _dataScaleTable = dataScaleTable; _simpleTable = null; } public void setOverview(DataSetViewerTablePanel simpleTable) { _simpleTable = new SimpleTable(simpleTable, _dataScaleTable); _dataScaleTable = null; } public void setParent() { if(null != _simpleTable) { _dataScaleTable = _simpleTable.getParent(); _simpleTable = null; return; } if(null != _dataScaleTable) { _dataScaleTable = _dataScaleTable.getParentScaleTable(); _simpleTable = null; return; } } public void setKid() { if (null != _dataScaleTable.getKidScaleTable()) { _dataScaleTable = _dataScaleTable.getKidScaleTable(); _simpleTable = null; } else { _simpleTable = new SimpleTable(_dataScaleTable.getKidSimpleTable(), _dataScaleTable); _dataScaleTable = null; } } public boolean hasParent() { if(null != _simpleTable) { return true; } if(null != _dataScaleTable) { return null != _dataScaleTable.getParentScaleTable(); } throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); } public boolean hasKid() { if(null != _simpleTable) { return false; } if(null != _dataScaleTable) { return null != _dataScaleTable.getKidScaleTable() || null != _dataScaleTable.getKidSimpleTable(); } throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); } public Component getComponent() { if(null != _simpleTable) { return _simpleTable.getComponent(); } if(null != _dataScaleTable) { return _dataScaleTable; } throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); } public boolean canShowInSimpleTable() { return null != _dataScaleTable; } public boolean isScaleTable() { return null != _dataScaleTable; } public void doClickTracing(JButton intervalButtonClicked) { for (int i = 0; i < _dataScaleTable.getDataScaleTableModel().getDataScaleCount(); i++) { DataScale dataScale = _dataScaleTable.getDataScaleTableModel().getDataScaleAt(i); dataScale.initButtonColor(intervalButtonClicked); } } private static class SimpleTable { private DataScaleTable _parent; private DataSetViewerTablePanel _simpleTable; public SimpleTable(DataSetViewerTablePanel simpleTable, DataScaleTable parent) { _simpleTable = simpleTable; _parent = parent; _parent.setKidSimpleTable(_simpleTable); } public DataScaleTable getParent() { return _parent; } public Component getComponent() { return _simpleTable.getComponent(); } } // private void stopCellEditing(DataScaleTable dataScaleTable) // { // TableCellEditor tableCellEditor = dataScaleTable.getCellEditor(); // if (null != tableCellEditor) // { // tableCellEditor.stopCellEditing(); // tableCellEditor.cancelCellEditing(); // } // } }