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

📄 resourcetreetable.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        popupMenu.addSeparator();        /* 'add new column' button */        JMenuItem addColumnItem = new JMenuItem(language                .getText("addCustomColumn"));        addColumnItem.setIcon(new ImageIcon(getClass().getResource(                "/icons/addCol_16.gif")));        addColumnItem.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                /* TODO the undo management */                Mediator.getGanttProjectSingleton().getUndoManager()                        .undoableEdit("addCustomColumn", new Runnable() {                            public void run() {                                ResourceColumn column = null;                                addCustomColumn(column);                            }                        });            }        });        popupMenu.add(addColumnItem);        /* 'delete column' button */        delColumnItem = new JMenuItem(language.getText("deleteCustomColumn"));        delColumnItem.setIcon(new ImageIcon(getClass().getResource(                "/icons/removeCol_16.gif")));        delColumnItem.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                /* TODO undo managment */                Mediator.getGanttProjectSingleton().getUndoManager()                        .undoableEdit("deleteCustomColumn", new Runnable() {                            public void run() {                                int ind = getTable().columnAtPoint(clickPoint);                                if (ind >= 0) {                                    deleteCustomColumn(getTable()                                            .getColumnName(ind));                                    delColumnItem.setEnabled(false);                                }                            }                        });            }        });        popupMenu.add(delColumnItem);    }    /* Shows the given column. The column will appear on     * it's default position */    void showColumn(ResourceColumn col) {    	col.setVisible(true);    	this.addColumn(col.getColumn());    	colCount++;    	try {    		this.getTable().moveColumn(colCount - 1, col.getIndex());    	}    	catch (IllegalArgumentException e)    	{/* doesn't matter, new put the column where we can */}    }    void hideColumn(ResourceColumn col) {        col.setVisible(false);        this.removeColumn(col.getColumn());        colCount--;    }    public void addMandatoryColumn(ResourceColumn column) {        this.addColumn(column.getColumn());        colCount++;        ttModel.addMandatoryColumn(column);    }    /* creates a custom property column in the datamodel and on the screen */    public void addCustomColumn(ResourceColumn column) {        if (column == null) {            /* create dialog and create column */            int index = ttModel.useNextIndex();            TableColumnExt col = new TableColumnExt(index);            column = new ResourceColumn(col, index);            ResourceDialogCustomColumn d = new ResourceDialogCustomColumn(                    Mediator.getGanttProjectSingleton().getUIFacade(), column);            d.setVisible(true);            column = d.getColumn();        }        if (column.getTitle() != null) {            /* adding the column into the datamodel */            try {                ttModel.addCustomColumn(column.getTitle(), column);            } catch (Exception e) {                JOptionPane.showMessageDialog(this, e.getMessage(),                /* TODO add translation */                "Column add", JOptionPane.ERROR_MESSAGE);                return;            }            /* adding the column to the screen */            this.addColumn(column.getColumn());            colCount++;            /* setting the cell renderer */            String colClass = column.getType().getName();            int align;            if (colClass.equals("java.lang.Integer")                    || colClass.equals("java.lang.Double")) {                align = SwingConstants.RIGHT;                setColumnHorizontalAlignment(column.getTitle(), align);            } else if (colClass.equals("java.util.GregorianCalendar")) {                align = SwingConstants.CENTER;                setColumnHorizontalAlignment(column.getTitle(), align);                /* the customised date cell editor */	    		column.getColumn().setCellEditor(newDateCellEditor());            } else {                align = SwingConstants.LEFT;                setColumnHorizontalAlignment(column.getTitle(), align);            }        }    }    /* deletes the column from the screen and the data model */    public void deleteCustomColumn(String name) {        ResourceColumn col = null;        col = ttModel.deleteCustomColumn(name);        this.removeColumn(col.getColumn());        colCount--;    }    void setUpRolesRenderer() {        Role roles[] = getRoleManager().getEnabledRoles();        final JComboBox comboBox = new JComboBox();        for (int i = 0; i < roles.length; i++)            comboBox.addItem(roles[i]);        try {            TableColumn roleColumn = this                    .getColumn(ResourceTreeTableModel.strResourceRole);            comboBox.setEditable(false);            roleColumn.setCellEditor(new DefaultCellEditor(comboBox));        } catch (IllegalArgumentException ex) {        }    }    private RoleManager getRoleManager() {        if (myRoleManager == null) {            myRoleManager = Mediator.getRoleManager();            myRoleManager.addRoleListener(new RoleManager.Listener() {                public void rolesChanged(RoleEvent e) {                    setUpRolesRenderer();                    setUpAssignementRolesRenderer();                }            });        }        return myRoleManager;    }    void setUpAssignementRolesRenderer() {        // Role roles[] = Mediator.getRoleManager().getEnabledRoles();        // final JComboBox comboBox = new JComboBox();        // for (int i = 0; i < roles.length; i++)        // comboBox.addItem(roles[i]);        final JComboBox comboBox = new JComboBox(getRoleManager()                .getEnabledRoles());        try {            TableColumn roleColumn = this                    .getColumn(ResourceTreeTableModel.strResourceRoleForTask);            comboBox.setEditable(false);            roleColumn.setCellEditor(new DefaultCellEditor(comboBox));        } catch (IllegalArgumentException ex) {        }    }    private void initColumnsAlignements() {        // setColumnHorizontalAlignment(ResourceTreeTableModel.strResourceName,        // SwingConstants.LEFT);        setColumnHorizontalAlignment(ResourceTreeTableModel.strResourceRole,                SwingConstants.LEFT);        setColumnHorizontalAlignment(ResourceTreeTableModel.strResourceEMail,                SwingConstants.LEFT);        setColumnHorizontalAlignment(ResourceTreeTableModel.strResourcePhone,                SwingConstants.RIGHT);        setColumnHorizontalAlignment(                ResourceTreeTableModel.strResourceRoleForTask,                SwingConstants.LEFT);                // Set the columns widths        getTable().getColumnExt(ResourceTreeTableModel.strResourceName)                .setPreferredWidth(150);        getTable().getColumnExt(ResourceTreeTableModel.strResourceRole)                .setPreferredWidth(120);        getTable().getColumnExt(ResourceTreeTableModel.strResourceEMail)                .setPreferredWidth(100);        getTable().getColumnExt(ResourceTreeTableModel.strResourcePhone)                .setPreferredWidth(100);        getTable().getColumnExt(ResourceTreeTableModel.strResourceRoleForTask)                .setPreferredWidth(100);        // getTable().getColumnExt(ResourceTreeTableModel.strResourceName)        // .setMaxWidth(300);        // getTable().getColumnExt(ResourceTreeTableModel.strResourceRole)        // .setMaxWidth(300);        // getTable().getColumnExt(ResourceTreeTableModel.strResourceEMail)        // .setMaxWidth(300);        // getTable().getColumnExt(ResourceTreeTableModel.strResourcePhone)        // .setMaxWidth(300);        // getTable().getColumnExt(ResourceTreeTableModel.strResourceRoleForTask)        // .setMaxWidth(300);    }    /** @return the list of the selected nodes. */    public DefaultMutableTreeNode[] getSelectedNodes() {        TreePath[] currentSelection = getTreeTable().getTree()                .getSelectionPaths();        if (currentSelection == null || currentSelection.length == 0) {            return new DefaultMutableTreeNode[0];        }        DefaultMutableTreeNode[] dmtnselected = new DefaultMutableTreeNode[currentSelection.length];        for (int i = 0; i < currentSelection.length; i++) {            dmtnselected[i] = (DefaultMutableTreeNode) currentSelection[i]                    .getLastPathComponent();        }        return dmtnselected;    }    public boolean isExpanded(ProjectResource pr) {        ResourceNode node = ((ResourceTreeTableModel) getTreeTableModel())                .exists(pr);        if (node != null)            return getTreeTable().isExpanded(new TreePath(node.getPath()));        return false;    }    public void addKeyListener(KeyListener listener) {        // getTreeTable().addKeyListener(listener);        super.addKeyListener(listener);        getTable().addKeyListener(listener);        getTree().addKeyListener(listener);    }    public JTree getTree() {        return this.getTreeTable().getTree();    }    public void setAction(Action action) {        InputMap inputMap = new InputMap();        inputMap.put((KeyStroke) action.getValue(Action.ACCELERATOR_KEY),                action.getValue(Action.NAME));        inputMap.setParent(getTreeTable().getInputMap(JComponent.WHEN_FOCUSED));        getTreeTable().setInputMap(JComponent.WHEN_FOCUSED, inputMap);        // Add the action to the component        getTreeTable().getActionMap().put(action.getValue(Action.NAME), action);    }    public void addMouseListener(MouseListener listener) {        getTreeTable().addMouseListener(listener);    }    public JScrollBar getVerticalScrollBar() {        return scrollPane.getVerticalScrollBar();    }    /* This actionlistener changes the column's visibility */    class ColumnHandler implements ActionListener {        private ResourceColumn column;        public ColumnHandler(ResourceColumn c) {            column = c;        }        public void actionPerformed(ActionEvent e) {            if (column.isVisible())                hideColumn(column);            else                showColumn(column);        }    }    void upResource() {        final DefaultMutableTreeNode[] selectedNodes = getSelectedNodes();        if(selectedNodes.length==0) {            return;        }        DefaultMutableTreeNode selectedNode = selectedNodes[0];        if (selectedNode instanceof ResourceNode) {            ResourceNode rn = (ResourceNode) selectedNode;            int index = rn.getParent().getIndex(rn);            if (index > 0) {                HumanResource people = (HumanResource)selectedNodes[0].getUserObject();                ttModel.moveUp(people);                getTree().setSelectionPath(new TreePath(rn.getPath()));            }        }    }    /** Move down the selected resource */    void downResource() {        final DefaultMutableTreeNode[] selectedNodes = getSelectedNodes();        if(selectedNodes.length==0) {            return;        }        DefaultMutableTreeNode selectedNode = selectedNodes[0];        if (selectedNode instanceof ResourceNode) {            ResourceNode rn = (ResourceNode) selectedNode;            int index = rn.getParent().getIndex(rn);            if (index < rn.getParent().getChildCount() - 1) {                HumanResource people = (HumanResource)selectedNodes[0].getUserObject();                ttModel.moveDown(people);                getTree().setSelectionPath(new TreePath(rn.getPath()));            }        }    }    }

⌨️ 快捷键说明

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