📄 taskdependenciespanel.java
字号:
package net.sourceforge.ganttproject.gui.taskproperties;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.DefaultCellEditor;import javax.swing.DefaultComboBoxModel;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.border.EtchedBorder;import javax.swing.border.TitledBorder;import javax.swing.table.TableColumn;import net.sourceforge.ganttproject.GanttProject;import net.sourceforge.ganttproject.gui.TestGanttRolloverButton;import net.sourceforge.ganttproject.language.GanttLanguage;import net.sourceforge.ganttproject.task.Task;import net.sourceforge.ganttproject.task.TaskManager;import net.sourceforge.ganttproject.task.dependency.TaskDependency;import net.sourceforge.ganttproject.task.dependency.TaskDependencyConstraint;import net.sourceforge.ganttproject.task.dependency.constraint.FinishFinishConstraintImpl;import net.sourceforge.ganttproject.task.dependency.constraint.FinishStartConstraintImpl;import net.sourceforge.ganttproject.task.dependency.constraint.StartFinishConstraintImpl;import net.sourceforge.ganttproject.task.dependency.constraint.StartStartConstraintImpl;/** * Created by IntelliJ IDEA. User: bard */public class TaskDependenciesPanel extends CommonPanel { protected GanttLanguage language = GanttLanguage.getInstance(); // language // the panel // will // display private GridBagConstraints gbc = new GridBagConstraints(); private JPanel predecessorsPanel; private JScrollPane predecessorsScrollPane; // second row, a table private JTable predecessorsTable; private final TaskManager myTaskManager; private DependencyTableModel myTableModel; public TaskDependenciesPanel(Task task) { super(task); myTaskManager = task.getManager(); } public JPanel getComponent() { if (predecessorsPanel == null) { constructPredecessorsPanel(); } return predecessorsPanel; } public DependencyTableModel getTableModel() { return myTableModel; } protected void constructPredecessorsPanel() { predecessorsPanel = new JPanel(new GridBagLayout()); myTableModel = new DependencyTableModel(getTask()); predecessorsTable = new JTable(myTableModel); predecessorsTable.setPreferredScrollableViewportSize(new Dimension(500, 130)); setUpPredecessorComboColumn(predecessorsTable.getColumnModel() .getColumn(1), predecessorsTable); // set column editor setUpTypeComboColumn(predecessorsTable.getColumnModel().getColumn(2)); // set // column // editor setUpHardnessColumnEditor(predecessorsTable.getColumnModel().getColumn(4)); predecessorsTable.setRowHeight(23); // set row height predecessorsTable.getColumnModel().getColumn(0).setPreferredWidth(10); // set // column // size predecessorsTable.getColumnModel().getColumn(1).setPreferredWidth(200); predecessorsTable.getColumnModel().getColumn(2).setPreferredWidth(60); predecessorsTable.getColumnModel().getColumn(3).setPreferredWidth(40); predecessorsScrollPane = new JScrollPane(predecessorsTable); JPanel secondPredecessorsPanel = new JPanel(); secondPredecessorsPanel.setBorder(new TitledBorder(new EtchedBorder(), language.getText("predecessors"))); secondPredecessorsPanel.add(predecessorsScrollPane); JButton bremove = new TestGanttRolloverButton(new ImageIcon(getClass() .getResource("/icons/delete_16.gif"))); bremove.setToolTipText(GanttProject.getToolTip(language .getText("removeRelationShip"))); bremove.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int[] selectedRow = predecessorsTable.getSelectedRows(); for (int i = 0; i < selectedRow.length; ++i) { predecessorsTable.getModel().setValueAt(null, selectedRow[i], 1); } } }); secondPredecessorsPanel.add(bremove); gbc.anchor = GridBagConstraints.WEST; gbc.insets.right = 15; gbc.insets.left = 10; gbc.insets.top = 10; gbc.weighty = 0; addUsingGBL(predecessorsPanel, setupCommonFields(true), gbc, 0, 0, 1, 1); gbc.gridx = 0; gbc.gridy = 1; gbc.gridwidth = 8; gbc.gridheight = 1; gbc.weighty = 1; predecessorsPanel.add(secondPredecessorsPanel, gbc); } protected void setUpPredecessorComboColumn(TableColumn predecessorColumn, final JTable predecessorTable) { // Set up the editor for the sport cells. final JComboBox comboBox = new JComboBox(); Task[] possiblePredecessors = myTaskManager.getAlgorithmCollection() .getFindPossibleDependeesAlgorithm().run(getTask()); for (int i = 0; i < possiblePredecessors.length; i++) { Task next = possiblePredecessors[i]; comboBox.addItem(new DependencyTableModel.TaskComboItem(next)); } comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (predecessorTable.getEditingRow() != -1) { DependencyTableModel.TaskComboItem selectedItem = (DependencyTableModel.TaskComboItem) comboBox .getSelectedItem(); if (selectedItem != null) { predecessorTable.setValueAt(selectedItem, predecessorTable.getEditingRow(), 0); predecessorTable.setValueAt(CONSTRAINTS[0], predecessorTable.getEditingRow(), 2); // predecessorTable.setValueAt(0+"", // predecessorTable.getEditingRow(), 3); } } } }); comboBox.setEditable(false); predecessorColumn.setCellEditor(new DefaultCellEditor(comboBox)); } private void setUpTypeComboColumn(TableColumn typeColumn) { // Set up the editor for the sport cells. DefaultComboBoxModel model = new DefaultComboBoxModel(CONSTRAINTS); JComboBox comboBox = new JComboBox(model); comboBox.setSelectedIndex(0); comboBox.setEditable(false); typeColumn.setCellEditor(new DefaultCellEditor(comboBox)); } private void setUpHardnessColumnEditor(TableColumn hardnessColumn) { DefaultComboBoxModel model = new DefaultComboBoxModel(HARDNESS); JComboBox comboBox = new JComboBox(model); comboBox.setSelectedIndex(0); comboBox.setEditable(false); hardnessColumn.setCellEditor(new DefaultCellEditor(comboBox)); } public JTable getTable() { return predecessorsTable; } private static TaskDependencyConstraint[] CONSTRAINTS = new TaskDependencyConstraint[] { new FinishStartConstraintImpl(), new FinishFinishConstraintImpl(), new StartFinishConstraintImpl(), new StartStartConstraintImpl() }; private static TaskDependency.Hardness[] HARDNESS = new TaskDependency.Hardness[] { TaskDependency.Hardness.STRONG, TaskDependency.Hardness.RUBBER };}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -