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

📄 taskallocationspanel.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.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;import javax.swing.DefaultCellEditor;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JComboBox;import javax.swing.JLabel;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.DefaultTableCellRenderer;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumn;import net.sourceforge.ganttproject.GanttProject;import net.sourceforge.ganttproject.gui.ResourcesTableModel;import net.sourceforge.ganttproject.gui.TestGanttRolloverButton;import net.sourceforge.ganttproject.resource.HumanResourceManager;import net.sourceforge.ganttproject.roles.Role;import net.sourceforge.ganttproject.roles.RoleManager;import net.sourceforge.ganttproject.task.ResourceAssignmentCollection;import net.sourceforge.ganttproject.task.Task;import org.jdesktop.swing.JXTable;import org.jdesktop.swing.decorator.Highlighter;import org.jdesktop.swing.decorator.HighlighterPipeline;/** * @author Dmitry.Barashev */public class TaskAllocationsPanel extends CommonPanel {    private JPanel resourcesPanel;    private ResourcesTableModel myResourcesTableModel;    private JXTable resourcesTable;    private final HumanResourceManager myHRManager;    private JScrollPane resourcesScrollPane;    private final RoleManager myRoleManager;    private boolean onlyOneTask = false;    public TaskAllocationsPanel(Task task, HumanResourceManager hrManager,            RoleManager roleMgr, boolean onlyOneTask) {        super(task);        myHRManager = hrManager;        myRoleManager = roleMgr;        this.onlyOneTask = onlyOneTask;    }    public JPanel getComponent() {        if (resourcesPanel == null) {            constructResourcesPanel(getTask().getAssignmentCollection());        }        return resourcesPanel;    }    private void constructResourcesPanel(            ResourceAssignmentCollection assignments) {        resourcesPanel = new JPanel(new GridBagLayout());        myResourcesTableModel = new ResourcesTableModel(assignments);        resourcesTable = new JXTable(myResourcesTableModel);        setUpResourcesComboColumn(resourcesTable); // set column editor        setUpCoordinatorBooleanColumn(resourcesTable);        setUpRolesComboColumn(resourcesTable);        resourcesTable.setRowHeight(23);        resourcesTable.getColumnModel().getColumn(0).setPreferredWidth(10);        resourcesTable.getColumnModel().getColumn(1).setPreferredWidth(240);        resourcesTable.getColumnModel().getColumn(2).setPreferredWidth(60);        resourcesTable.getColumnModel().getColumn(3).setPreferredWidth(60);        resourcesTable.getColumnModel().getColumn(4).setPreferredWidth(100);        resourcesTable.setHighlighters(new HighlighterPipeline(                new Highlighter[] { new Highlighter(                        new Color(0xFF, 0xFF, 0xFF), null) }));        resourcesScrollPane = new JScrollPane(resourcesTable);        resourcesScrollPane.setPreferredSize(new Dimension(500, 130));        JPanel secondResourcesScrollPane = new JPanel();        secondResourcesScrollPane.setBorder(new TitledBorder(                new EtchedBorder(), GanttProject.correctLabel(getLanguage()                        .getText("human"))));        secondResourcesScrollPane.add(resourcesScrollPane);        JButton bremove = new TestGanttRolloverButton(new ImageIcon(getClass()                .getResource("/icons/delete_16.gif")));        bremove.setToolTipText(GanttProject.getToolTip(getLanguage().getText(                "removeResources")));        bremove.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent evt) {                int[] selectedRow = resourcesTable.getSelectedRows();                for (int i = 0; i < selectedRow.length; ++i) {                    resourcesTable.getModel().setValueAt(null, selectedRow[i],                            1);                }            }        });        secondResourcesScrollPane.add(bremove);        GridBagConstraints gbc = new GridBagConstraints();        gbc.anchor = GridBagConstraints.WEST;        gbc.insets.right = 15;        gbc.insets.left = 10;        gbc.insets.top = 10;        gbc.weighty = 0;        JPanel commonFields = setupCommonFields(onlyOneTask);        addUsingGBL(resourcesPanel, commonFields, gbc, 0, 0, 1, 1);        gbc.gridx = 0;        gbc.gridy = 1;        gbc.gridwidth = 8;        gbc.gridheight = 1;        gbc.weighty = 1;        resourcesPanel.add(secondResourcesScrollPane, gbc);    }    public ResourcesTableModel getTableModel() {        return myResourcesTableModel;    }    private void setUpCoordinatorBooleanColumn(final JTable resourceTable) {        TableColumn resourcesColumn = resourceTable.getColumnModel().getColumn(                3);        resourcesColumn.setCellRenderer(new BooleanRenderer());    }    private void setUpResourcesComboColumn(final JTable resourceTable) {        List resources = myHRManager.getResources();        final JComboBox comboBox = new JComboBox();        for (int i = 0; i < resources.size(); i++) {            comboBox.addItem(resources.get(i));        }        TableColumn resourcesColumn = resourceTable.getColumnModel().getColumn(                1);        comboBox.setEditable(false);        resourcesColumn.setCellEditor(new DefaultCellEditor(comboBox));    }    private void setUpRolesComboColumn(final JTable resourceTable) {        final Role[] roles = myRoleManager.getEnabledRoles();        final JComboBox comboBox = new JComboBox();        for (int i = 0; i < roles.length; i++) {            Role role = (Role) roles[i];            comboBox.addItem(role);        }        TableColumn rolesColumn = resourceTable.getColumnModel().getColumn(4);        comboBox.setEditable(false);        rolesColumn.setCellEditor(new DefaultCellEditor(comboBox));        rolesColumn.setCellRenderer(new DefaultTableCellRenderer());    }    static class BooleanRenderer extends JCheckBox implements TableCellRenderer {        public BooleanRenderer() {            super();            setHorizontalAlignment(JLabel.CENTER);        }        public Component getTableCellRendererComponent(JTable table,                Object value, boolean isSelected, boolean hasFocus, int row,                int column) {            if (isSelected) {                setForeground(table.getSelectionForeground());                super.setBackground(table.getSelectionBackground());            } else {                setForeground(table.getForeground());                setBackground(table.getBackground());            }            if (!value.getClass().equals(Boolean.class))                setSelected(false);            else                setSelected((value != null && ((Boolean) value).booleanValue()));            return this;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -