⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskdependenciespanel.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 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 + -