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

📄 rolesetpage.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
package net.sourceforge.ganttproject.gui.projectwizard;import java.awt.BorderLayout;import java.awt.Component;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.AbstractListModel;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JCheckBox;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.ListCellRenderer;import net.sourceforge.ganttproject.language.GanttLanguage;import net.sourceforge.ganttproject.roles.Role;import net.sourceforge.ganttproject.roles.RoleSet;public class RoleSetPage implements WizardPage {    private final I18N myI18N;    private RoleSetListModel myListModel;    RoleSetPage(RoleSet[] roleSets, I18N i18n) {        myI18N = i18n;        myListModel = new RoleSetListModel(roleSets, i18n);    }    public String getTitle() {        return myI18N.getProjectDomainPageTitle();    }    public Component getComponent() {        Box domainBox = new Box(BoxLayout.PAGE_AXIS);        JLabel label = new JLabel(GanttLanguage.getInstance().getText(                "chooseRoleSets"));        final JList roleSetsList = new JList(myListModel);        roleSetsList.setCellRenderer(myListModel.getCellRenderer());        roleSetsList.addMouseListener(new MouseAdapter() {            public void mouseClicked(MouseEvent e) {                int index = roleSetsList.locationToIndex(e.getPoint());                myListModel.toggle(index);            }        });        roleSetsList.setAlignmentX(0);        label.setLabelFor(roleSetsList);        label.setAlignmentX(0);        domainBox.add(label);        domainBox.add(Box.createVerticalStrut(5));        domainBox.add(roleSetsList);        //        JPanel result = new JPanel(new BorderLayout());        result.add(domainBox, BorderLayout.CENTER);        // result.setBorder(LineBorder.createBlackLineBorder());        return result;    }    private static class RoleSetListModel extends AbstractListModel implements            ListCellRenderer {        private final RoleSet[] myRoleSets;        private final I18N myI18n;        RoleSetListModel(RoleSet[] roleSets, I18N i18n) {            myRoleSets = roleSets;            myI18n = i18n;        }        public void toggle(int index) {            if (!isTheOnlyEnabled(myRoleSets[index])) {                myRoleSets[index].setEnabled(!myRoleSets[index].isEnabled());                fireContentsChanged(this, index, index);            }        }        public int getSize() {            return myRoleSets.length;        }        public Object getElementAt(int index) {            return myRoleSets[index];        }        ListCellRenderer getCellRenderer() {            return this;        }        public Component getListCellRendererComponent(JList list, Object value,                int index, boolean isSelected, boolean cellHasFocus) {            final RoleSet roleSet = (RoleSet) value;            final JCheckBox result = new JCheckBox(myI18n                    .getRoleSetDisplayName(roleSet), roleSet.isEnabled());            if (isTheOnlyEnabled(roleSet)) {                result.setEnabled(false);            }            result.setToolTipText(createTooltipText(roleSet));            return result;        }        private boolean isTheOnlyEnabled(RoleSet roleSet) {            boolean result = true;            for (int i = 0; i < myRoleSets.length; i++) {                if (myRoleSets[i] != roleSet && myRoleSets[i].isEnabled()) {                    result = false;                    break;                }            }            return result;        }        private String createTooltipText(RoleSet roleSet) {            StringBuffer result = new StringBuffer();            result.append(myI18n.getRolesetTooltipHeader(roleSet.getName()));            Role[] roles = roleSet.getRoles();            for (int i = 0; i < roles.length; i++) {                Role nextRole = roles[i];                result.append(myI18n.formatRoleForTooltip(nextRole));            }            result.append(myI18n.getRolesetTooltipFooter());            return result.toString();        }    }    public void setActive(boolean active) {    }}

⌨️ 快捷键说明

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