/* * */ package ext.egantt.swing; import com.egantt.drawing.view.ViewManager; import com.egantt.model.component.ComponentList; import com.egantt.model.drawing.*; import com.egantt.model.drawing.axis.interval.LongInterval; import com.egantt.model.drawing.part.ListDrawingPart; import ext.egantt.model.drawing.state.BasicDrawingState; import com.egantt.swing.scroll.ScrollManager; import com.egantt.swing.table.list.BasicJTableList; import com.egantt.swing.table.model.column.ColumnManager; import com.egantt.swing.table.model.column.manager.BasicColumnManager; import ext.egantt.actions.DrawingTool; import ext.egantt.component.holder.SplitLayeredHolder; import ext.egantt.drawing.GanttComponentUtilities; import ext.egantt.drawing.module.GradientColorModule; import ext.egantt.launcher.JFrameLauncher; import java.awt.Graphics; import java.awt.event.*; import java.util.Date; import java.util.List; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JViewport; import javax.swing.table.*; // Referenced classes of package ext.egantt.swing: // JTableHelper public class GanttTable { protected class LocalPopupMouseListener extends MouseAdapter { public void mousePressed(MouseEvent e) { maybeShowPopup(e); } public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } private void maybeShowPopup(MouseEvent e) { if(e.isPopupTrigger()) popup.show(e.getComponent(), e.getX(), e.getY()); } final GanttTable this$0; protected LocalPopupMouseListener() { this$0 = GanttTable.this; } } public GanttTable(Object rowData[][], Object columnNames[][], ComponentList componentList) { this(JTableHelper.createTableModel(rowData, columnNames), componentList, columnNames); } public GanttTable(Object rowData[][], Object columnNames[][], ComponentList componentList, List eventList) { this(JTableHelper.createTableModel(rowData, columnNames), componentList, columnNames, eventList); } public GanttTable(TableModel model, ComponentList componentList) { this(model, componentList, JTableHelper.createColumnNames(model)); } public GanttTable(TableModel model) { this(model, ((ComponentList) (new BasicJTableList())), JTableHelper.createColumnNames(model)); } public GanttTable(TableModel model, String columnNames[][]) { this(model, ((ComponentList) (new BasicJTableList())), ((Object [][]) (columnNames))); } public GanttTable(TableModel model, ComponentList componentList, Object columnNames[][]) { this.componentList = componentList; componentUtils = new GanttComponentUtilities(axises); columnManager = new BasicColumnManager(model, columnNames); componentList.setColumnManager(columnManager); componentList.setComponentManager(componentUtils.getManager()); //setComponentList(componentList); //setRangeModel(componentUtils.getScrollManager(0)); } public GanttTable(TableModel model, ComponentList componentList, Object columnNames[][], List eventList) { this.componentList = componentList; componentUtils = new GanttComponentUtilities(axises, eventList); columnManager = new BasicColumnManager(model, columnNames); componentList.setColumnManager(columnManager); componentList.setComponentManager(componentUtils.getManager()); //setComponentList(componentList); //setRangeModel(componentUtils.getScrollManager(0)); } public JTable getJTable(){ return (JTable)componentList.get(0); } public void paint(Graphics g) { //super.paint(g); if(drawingTool != null) drawingTool.paintComponent(g); } public void addMouseListener(MouseListener adapter) { if(componentList == null) return; for(int i = 0; i < componentList.size(); i++) { JTable table = (JTable)componentList.get(i); table.addMouseListener(adapter); } } public void removeMouseListener(MouseListener adapter) { if(componentList == null) return; for(int i = 0; i < componentList.size(); i++) { JTable table = (JTable)componentList.get(i); table.removeMouseListener(adapter); } } public void addMouseMotionListener(MouseMotionListener adapter) { if(componentList == null) return; for(int i = 0; i < componentList.size(); i++) { JTable table = (JTable)componentList.get(i); table.addMouseMotionListener(adapter); } } public void removeMouseMotionListener(MouseMotionListener adapter) { if(componentList == null) return; for(int i = 0; i < componentList.size(); i++) { JTable table = (JTable)componentList.get(i); table.removeMouseMotionListener(adapter); } } public void setComponentPopupMenu(JPopupMenu popup) { if(componentList == null) return; if(mouseListener != null) removeMouseListener(mouseListener); this.popup = popup; if(popup != null) { mouseListener = new LocalPopupMouseListener(); addMouseListener(mouseListener); } } public DrawingTool getDrawingTool() { return drawingTool; } public void setDrawingTool(DrawingTool drawingTool) { if(this.drawingTool != null) this.drawingTool.terminate(); this.drawingTool = drawingTool; if(this.drawingTool != null) drawingTool.intialize(this); } public int getRowCount() { return getModel().getRowCount(); } public int getColumnCount() { return getModel().getColumnCount(); } public TableModel getModel() { return columnManager.getModel(); } public JTable getTableComponent(int index) { return (JTable)componentList.get(index); } public TableColumnModel getColumnModel(int index) { return columnManager.get(index); } public TableCellEditor getDefaultEditor(int index, Class columnClass) { JTable table = getTableComponent(index); return table == null ? null : table.getDefaultEditor(columnClass); } public TableCellRenderer getDefaultRenderer(int index, Class columnClass) { JTable table = getTableComponent(index); return table == null ? null : table.getDefaultRenderer(columnClass); } public int getColumnModelCount() { return columnManager.size(); } public JTableHeader getTableHeader(int index) { JTable table = getTableComponent(index); return table == null ? null : table.getTableHeader(); } public DrawingContext getDrawingContext() { return componentUtils.getContext(); } public ViewManager getViewManager(String axis) { DrawingContext context = getDrawingContext(); return (ViewManager)context.get(axis, ContextResources.VIEW_MANAGER); } public boolean setTimeRange(Date start, Date finish) { if(start == null || finish == null) return false; if(start.equals(finish) || start.after(finish)) { return false; } else { LongInterval interval = new LongInterval(start.getTime(), finish.getTime()); ViewManager viewManager = getViewManager(TIME_AXIS); viewManager.getAxis().setInterval(interval); return true; } } public void cancelEditing() { if(componentList == null) return; for(int i = 0; i < componentList.size(); i++) { JTable table = (JTable)componentList.get(i); if(table.isEditing() && !table.getCellEditor().stopCellEditing()) table.getCellEditor().cancelCellEditing(); } } private static final long serialVersionUID = 0x2c0f45df3f6f485L; public static final String axises[] = { "xAxis", "yAxis", "percentageAxis" }; public static final String X_AXIS = axises[0]; public static final String Y_AXIS = axises[1]; public static final String TIME_AXIS = axises[0]; public static final String HEIGHT_AXIS = axises[1]; public static final String PERCENTAGE_AXIS = axises[2]; protected ColumnManager columnManager; protected ComponentList componentList; protected GanttComponentUtilities componentUtils; protected LocalPopupMouseListener mouseListener; protected DrawingTool drawingTool; private JPopupMenu popup; private JScrollPane panelScroll = null; }