Example usage for org.apache.commons.collections15.map MultiKeyMap put

List of usage examples for org.apache.commons.collections15.map MultiKeyMap put

Introduction

In this page you can find the example usage for org.apache.commons.collections15.map MultiKeyMap put.

Prototype

public V put(K key1, K key2, K key3, V value) 

Source Link

Document

For backwards compatibility, makes a call to the new varargs MultiKeyMap#putMultiKey

Usage

From source file:lcmc.common.ui.EditableInfo.java

/** Adds parameters to the panel. */
private void addParams(final JPanel optionsPanel, final String prefix, final String[] params,
        final MyButton thisApplyButton, final int leftWidth, final int rightWidth,
        final Map<String, Widget> sameAsFields) {
    swingUtils.isSwingThread();//from  w w  w.  j a v  a 2s  . com
    if (params == null) {
        return;
    }
    final MultiKeyMap<String, JPanel> panelPartsMap = new MultiKeyMap<String, JPanel>();
    final Collection<PanelPart> panelPartsList = new ArrayList<PanelPart>();
    final MultiKeyMap<String, Integer> panelPartRowsMap = new MultiKeyMap<String, Integer>();

    for (final String param : params) {
        final Widget paramWi = createWidget(param, prefix, rightWidth);
        /* sub panel */
        final String section = getSection(param);
        final JPanel panel;
        final AccessMode.Type accessType = getAccessType(param);
        final String accessTypeString = accessType.toString();
        final Boolean advanced = isAdvanced(param);
        final String advancedString = advanced.toString();
        if (panelPartsMap.containsKey(section, accessTypeString, advancedString)) {
            panel = panelPartsMap.get(section, accessTypeString, advancedString);
            panelPartRowsMap.put(section, accessTypeString, advancedString,
                    panelPartRowsMap.get(section, accessTypeString, advancedString) + 1);
        } else {
            panel = new JPanel(new SpringLayout());

            panel.setBackground(getSectionColor(section));
            if (advanced) {
                advancedPanelList.add(panel);
                panel.setVisible(access.isAdvancedMode());
            }
            panelPartsMap.put(section, accessTypeString, advancedString, panel);
            panelPartsList.add(new PanelPart(section, accessType, advanced));
            panelPartRowsMap.put(section, accessTypeString, advancedString, 1);
        }

        /* label */
        final JLabel label = new JLabel(getParamShortDesc(param));
        final String longDesc = getParamLongDesc(param);
        paramWi.setLabel(label, longDesc);

        /* tool tip */
        paramWi.setToolTipText(getToolTipText(param, paramWi));
        label.setToolTipText(longDesc + additionalToolTip(param));
        int height = 0;
        if (paramWi instanceof Label) {
            height = application.getDefaultSize("Browser.LabelFieldHeight");
        }
        addField(panel, label, paramWi.getComponent(), leftWidth, rightWidth, height);
    }
    final boolean wizard = Widget.WIZARD_PREFIX.equals(prefix);
    for (final String param : params) {
        final Widget paramWi = getWidget(param, prefix);
        if (wizard) {
            final Widget rpwi = getWidget(param, null);
            if (rpwi == null) {
                LOG.error("addParams: unknown param: " + param);
                continue;
            }
            if (paramWi.getValue() == null || paramWi.getValue().isNothingSelected()) {
                rpwi.setValueAndWait(null);
            } else {
                final Value value = paramWi.getValue();
                rpwi.setValueAndWait(value);
            }
        }
    }
    for (final String param : params) {
        final Widget paramWi = getWidget(param, prefix);
        Widget rpwi = null;
        if (wizard) {
            rpwi = getWidget(param, null);
        }
        final Widget realParamWi = rpwi;
        paramWi.addListeners(new WidgetListener() {
            @Override
            public void check(final Value value) {
                checkParameterFields(paramWi, realParamWi, param, getParametersFromXML(), thisApplyButton);
            }
        });
    }

    /* add sub panels to the option panel */
    final Map<String, JPanel> sectionMap = new HashMap<String, JPanel>();
    final Collection<JPanel> notAdvancedSections = new HashSet<JPanel>();
    final Collection<JPanel> advancedSections = new HashSet<JPanel>();
    for (final PanelPart panelPart : panelPartsList) {
        final String section = panelPart.getSection();
        final AccessMode.Type accessType = panelPart.getType();
        final String accessTypeString = accessType.toString();
        final Boolean advanced = panelPart.isAdvanced();
        final String advancedString = advanced.toString();

        final JPanel panel = panelPartsMap.get(section, accessTypeString, advancedString);
        final int rows = panelPartRowsMap.get(section, accessTypeString, advancedString);
        final int columns = 2;
        SpringUtilities.makeCompactGrid(panel, rows, columns, 1, 1, // initX, initY
                1, 1); // xPad, yPad
        final JPanel sectionPanel;
        if (sectionMap.containsKey(section)) {
            sectionPanel = sectionMap.get(section);
        } else {
            sectionPanel = getParamPanel(getSectionDisplayName(section), getSectionColor(section));
            sectionMap.put(section, sectionPanel);
            addSectionPanel(section, wizard, sectionPanel);
            optionsPanel.add(sectionPanel);
            if (sameAsFields != null) {
                final Widget sameAsCombo = sameAsFields.get(section);
                if (sameAsCombo != null) {
                    final JPanel saPanel = new JPanel(new SpringLayout());
                    saPanel.setBackground(Browser.BUTTON_PANEL_BACKGROUND);
                    final JLabel label = new JLabel(Tools.getString("ClusterBrowser.SameAs"));
                    sameAsCombo.setLabel(label, "");
                    addField(saPanel, label, sameAsCombo.getComponent(), leftWidth, rightWidth, 0);
                    SpringUtilities.makeCompactGrid(saPanel, 1, 2, 1, 1, // initX, initY
                            1, 1); // xPad, yPad
                    sectionPanel.add(saPanel);
                }
            }
        }
        sectionPanel.setVisible(isSectionEnabled(section));
        sectionPanel.add(panel);
        if (advanced) {
            advancedSections.add(sectionPanel);
        } else {
            notAdvancedSections.add(sectionPanel);
        }
    }
    boolean advanced = false;
    for (final Map.Entry<String, JPanel> sectionEntry : sectionMap.entrySet()) {
        final JPanel sectionPanel = sectionEntry.getValue();
        if (advancedSections.contains(sectionPanel)) {
            advanced = true;
        }
        if (!notAdvancedSections.contains(sectionPanel)) {
            advancedOnlySectionList.add(sectionEntry.getKey());
            sectionPanel.setVisible(access.isAdvancedMode() && isSectionEnabled(sectionEntry.getKey()));
        }
    }
    moreOptionsPanel.setVisible(advanced && !access.isAdvancedMode());
}

From source file:lcmc.gui.resources.EditableInfo.java

/** Adds parameters to the panel. */
private void addParams(final JPanel optionsPanel, final String prefix, final String[] params,
        final MyButton thisApplyButton, final int leftWidth, final int rightWidth,
        final Map<String, Widget> sameAsFields) {
    if (params == null) {
        return;//  www.jav  a2s. c o m
    }
    final MultiKeyMap<String, JPanel> panelPartsMap = new MultiKeyMap<String, JPanel>();
    final List<PanelPart> panelPartsList = new ArrayList<PanelPart>();
    final MultiKeyMap<String, Integer> panelPartRowsMap = new MultiKeyMap<String, Integer>();

    for (final String param : params) {
        final Widget paramWi = createWidget(param, prefix, rightWidth);
        /* sub panel */
        final String section = getSection(param);
        JPanel panel;
        final ConfigData.AccessType accessType = getAccessType(param);
        final String accessTypeString = accessType.toString();
        final Boolean advanced = isAdvanced(param);
        final String advancedString = advanced.toString();
        if (panelPartsMap.containsKey(section, accessTypeString, advancedString)) {
            panel = panelPartsMap.get(section, accessTypeString, advancedString);
            panelPartRowsMap.put(section, accessTypeString, advancedString,
                    panelPartRowsMap.get(section, accessTypeString, advancedString) + 1);
        } else {
            panel = new JPanel(new SpringLayout());
            panel.setBackground(Browser.PANEL_BACKGROUND);
            if (advanced) {
                advancedPanelList.add(panel);
                final JPanel p = panel;
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        p.setVisible(Tools.getConfigData().isAdvancedMode());
                    }
                });
            }
            panelPartsMap.put(section, accessTypeString, advancedString, panel);
            panelPartsList.add(new PanelPart(section, accessType, advanced));
            panelPartRowsMap.put(section, accessTypeString, advancedString, 1);
        }

        /* label */
        final JLabel label = new JLabel(getParamShortDesc(param));
        final String longDesc = getParamLongDesc(param);
        paramWi.setLabel(label, longDesc);

        /* tool tip */
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                paramWi.setToolTipText(getToolTipText(param));
                label.setToolTipText(longDesc);
            }
        });
        int height = 0;
        if (paramWi.getType() == Widget.Type.LABELFIELD) {
            height = Tools.getDefaultSize("Browser.LabelFieldHeight");
        }
        addField(panel, label, paramWi, leftWidth, rightWidth, height);
    }
    for (final String param : params) {
        final Widget paramWi = getWidget(param, prefix);
        Widget rpwi = null;
        if ("wizard".equals(prefix)) {
            rpwi = getWidget(param, null);
            if (rpwi == null) {
                Tools.appError("unkown param: " + param + ". Man pages not installed?");
                continue;
            }
            int height = 0;
            if (rpwi.getType() == Widget.Type.LABELFIELD) {
                height = Tools.getDefaultSize("Browser.LabelFieldHeight");
            }
            final Widget rpwi0 = rpwi;
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    if (paramWi.getValue() == null || paramWi.getValue() == Widget.NOTHING_SELECTED) {
                        rpwi0.setValueAndWait(null);
                    } else {
                        final Object value = paramWi.getStringValue();
                        rpwi0.setValueAndWait(value);
                    }
                }
            });
        }
    }
    for (final String param : params) {
        final Widget paramWi = getWidget(param, prefix);
        Widget rpwi = null;
        if ("wizard".equals(prefix)) {
            rpwi = getWidget(param, null);
        }
        final Widget realParamWi = rpwi;
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                paramWi.addListeners(new WidgetListener() {
                    @Override
                    public void check(final Object value) {
                        checkParameterFields(paramWi, realParamWi, param, params, thisApplyButton);
                    }
                });

            }
        });
    }

    /* add sub panels to the option panel */
    final Map<String, JPanel> sectionMap = new HashMap<String, JPanel>();
    final Set<JPanel> notAdvancedSections = new HashSet<JPanel>();
    final Set<JPanel> advancedSections = new HashSet<JPanel>();
    for (final PanelPart panelPart : panelPartsList) {
        final String section = panelPart.getSection();
        final ConfigData.AccessType accessType = panelPart.getAccessType();
        final String accessTypeString = accessType.toString();
        final Boolean advanced = panelPart.isAdvanced();
        final String advancedString = advanced.toString();

        final JPanel panel = panelPartsMap.get(section, accessTypeString, advancedString);
        final int rows = panelPartRowsMap.get(section, accessTypeString, advancedString);
        final int columns = 2;
        SpringUtilities.makeCompactGrid(panel, rows, columns, 1, 1, // initX, initY
                1, 1); // xPad, yPad
        JPanel sectionPanel;
        if (sectionMap.containsKey(section)) {
            sectionPanel = sectionMap.get(section);
        } else {
            sectionPanel = getParamPanel(section);
            sectionMap.put(section, sectionPanel);
            optionsPanel.add(sectionPanel);
            if (sameAsFields != null) {
                final Widget sameAsCombo = sameAsFields.get(section);
                if (sameAsCombo != null) {
                    final JPanel saPanel = new JPanel(new SpringLayout());
                    saPanel.setBackground(Browser.BUTTON_PANEL_BACKGROUND);
                    final JLabel label = new JLabel("Same As");
                    sameAsCombo.setLabel(label, "");
                    addField(saPanel, label, sameAsCombo, leftWidth, rightWidth, 0);
                    SpringUtilities.makeCompactGrid(saPanel, 1, 2, 1, 1, // initX, initY
                            1, 1); // xPad, yPad
                    sectionPanel.add(saPanel);
                }
            }
        }
        sectionPanel.add(panel);
        if (advanced) {
            advancedSections.add(sectionPanel);
        } else {
            notAdvancedSections.add(sectionPanel);
        }
    }
    boolean advanced = false;
    for (final JPanel sectionPanel : sectionMap.values()) {
        if (advancedSections.contains(sectionPanel)) {
            advanced = true;
        }
        if (!notAdvancedSections.contains(sectionPanel)) {
            advancedOnlySectionList.add(sectionPanel);
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    sectionPanel.setVisible(Tools.getConfigData().isAdvancedMode());
                }
            });
        }
    }
    final boolean a = advanced;
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            moreOptionsPanel.setVisible(a && !Tools.getConfigData().isAdvancedMode());
        }
    });
}

From source file:lcmc.crm.domain.CrmXml.java

/** Parses attributes, operations etc. from primitives and clones. */
private void parseAttributes(final Node resourceNode, final String crmId,
        final Map<String, Map<String, String>> parametersMap,
        final Map<String, Map<String, String>> parametersNvpairsIdsMap,
        final Map<String, String> resourceInstanceAttrIdMap, final MultiKeyMap<String, Value> operationsMap,
        final Map<String, String> metaAttrsIdMap, final Map<String, String> operationsIdMap,
        final Map<String, Map<String, String>> resOpIdsMap, final Map<String, String> operationsIdRefs,
        final Map<String, String> operationsIdtoCRMId, final Map<String, String> metaAttrsIdRefs,
        final Map<String, String> metaAttrsIdToCRMId, final boolean stonith) {
    final Map<String, String> params = new HashMap<String, String>();
    parametersMap.put(crmId, params);//from   w  w w. j av  a  2  s . c om
    final Map<String, String> nvpairIds = new HashMap<String, String>();
    parametersNvpairsIdsMap.put(crmId, nvpairIds);
    /* <instance_attributes> */
    final Node instanceAttrNode = XMLTools.getChildNode(resourceNode, "instance_attributes");
    /* <nvpair...> */
    if (instanceAttrNode != null) {
        final String iAId = XMLTools.getAttribute(instanceAttrNode, "id");
        resourceInstanceAttrIdMap.put(crmId, iAId);
        final NodeList nvpairsRes;
        if (Tools.versionBeforePacemaker(host)) {
            /* <attributtes> only til 2.1.4 */
            final Node attrNode = XMLTools.getChildNode(instanceAttrNode, "attributes");
            nvpairsRes = attrNode.getChildNodes();
        } else {
            nvpairsRes = instanceAttrNode.getChildNodes();
        }
        for (int j = 0; j < nvpairsRes.getLength(); j++) {
            final Node optionNode = nvpairsRes.item(j);
            if (optionNode.getNodeName().equals("nvpair")) {
                final String nvpairId = XMLTools.getAttribute(optionNode, "id");
                String name = XMLTools.getAttribute(optionNode, "name");
                final String value = XMLTools.getAttribute(optionNode, "value");
                if (stonith && "priority".equals(name)) {
                    /* so it does not clash with meta attr priority */
                    name = STONITH_PRIORITY_INSTANCE_ATTR;
                }
                params.put(name, value);
                nvpairIds.put(name, nvpairId);
            }
        }
    }

    /* <operations> */
    final Node operationsNode = XMLTools.getChildNode(resourceNode, "operations");
    if (operationsNode != null) {
        final String operationsIdRef = XMLTools.getAttribute(operationsNode, "id-ref");
        if (operationsIdRef == null) {
            final String operationsId = XMLTools.getAttribute(operationsNode, "id");
            operationsIdMap.put(crmId, operationsId);
            operationsIdtoCRMId.put(operationsId, crmId);
            final Map<String, String> opIds = new HashMap<String, String>();
            resOpIdsMap.put(crmId, opIds);
            /* <op> */
            final NodeList ops = operationsNode.getChildNodes();
            for (int k = 0; k < ops.getLength(); k++) {
                final Node opNode = ops.item(k);
                if (opNode.getNodeName().equals("op")) {
                    final String opId = XMLTools.getAttribute(opNode, "id");
                    final String name = XMLTools.getAttribute(opNode, "name");
                    final String timeout = XMLTools.getAttribute(opNode, "timeout");
                    final String interval = XMLTools.getAttribute(opNode, "interval");
                    final String startDelay = XMLTools.getAttribute(opNode, "start-delay");

                    operationsMap.put(crmId, name, "interval", parseValue("interval", interval));
                    operationsMap.put(crmId, name, "timeout", parseValue("timeout", timeout));
                    operationsMap.put(crmId, name, "start-delay", parseValue("startDelay", startDelay));

                    opIds.put(name, opId);
                    if ("monitor".equals(name)) {
                        final String checkLevel = parseCheckLevelMonitorAttribute(opNode);
                        operationsMap.put(crmId, name, PARAM_OCF_CHECK_LEVEL, new StringValue(checkLevel));
                    }
                }
            }
        } else {
            operationsIdRefs.put(crmId, operationsIdRef);
        }
    }

    /* <meta_attributtes> */
    final Node metaAttrsNode = XMLTools.getChildNode(resourceNode, "meta_attributes");
    if (metaAttrsNode != null) {
        final String metaAttrsIdRef = XMLTools.getAttribute(metaAttrsNode, "id-ref");
        if (metaAttrsIdRef == null) {
            final String metaAttrsId = XMLTools.getAttribute(metaAttrsNode, "id");
            metaAttrsIdMap.put(crmId, metaAttrsId);
            metaAttrsIdToCRMId.put(metaAttrsId, crmId);
            /* <attributtes> only til 2.1.4 */
            final NodeList nvpairsMA;
            if (Tools.versionBeforePacemaker(host)) {
                final Node attrsNode = XMLTools.getChildNode(metaAttrsNode, "attributes");
                nvpairsMA = attrsNode.getChildNodes();
            } else {
                nvpairsMA = metaAttrsNode.getChildNodes();
            }
            /* <nvpair...> */
            /* target-role and is-managed */
            for (int l = 0; l < nvpairsMA.getLength(); l++) {
                final Node maNode = nvpairsMA.item(l);
                if (maNode.getNodeName().equals("nvpair")) {
                    final String nvpairId = XMLTools.getAttribute(maNode, "id");
                    final String name = XMLTools.getAttribute(maNode, "name");
                    String value = XMLTools.getAttribute(maNode, "value");
                    if (TARGET_ROLE_META_ATTR.equals(name)) {
                        value = value.toLowerCase(Locale.US);
                    }
                    params.put(name, value);
                    nvpairIds.put(name, nvpairId);
                }
            }
        } else {
            metaAttrsIdRefs.put(crmId, metaAttrsIdRef);
        }
    }
}

From source file:lcmc.data.CRMXML.java

/** Parses attributes, operations etc. from primitives and clones. */
private void parseAttributes(final Node resourceNode, final String crmId,
        final Map<String, Map<String, String>> parametersMap,
        final Map<String, Map<String, String>> parametersNvpairsIdsMap,
        final Map<String, String> resourceInstanceAttrIdMap, final MultiKeyMap<String, String> operationsMap,
        final Map<String, String> metaAttrsIdMap, final Map<String, String> operationsIdMap,
        final Map<String, Map<String, String>> resOpIdsMap, final Map<String, String> operationsIdRefs,
        final Map<String, String> operationsIdtoCRMId, final Map<String, String> metaAttrsIdRefs,
        final Map<String, String> metaAttrsIdToCRMId, final boolean stonith) {
    final Map<String, String> params = new HashMap<String, String>();
    parametersMap.put(crmId, params);/* w ww  . j a  va  2 s . c o  m*/
    final Map<String, String> nvpairIds = new HashMap<String, String>();
    parametersNvpairsIdsMap.put(crmId, nvpairIds);
    /* <instance_attributes> */
    final Node instanceAttrNode = getChildNode(resourceNode, "instance_attributes");
    /* <nvpair...> */
    if (instanceAttrNode != null) {
        final String iAId = getAttribute(instanceAttrNode, "id");
        resourceInstanceAttrIdMap.put(crmId, iAId);
        NodeList nvpairsRes;
        if (Tools.versionBeforePacemaker(host)) {
            /* <attributtes> only til 2.1.4 */
            final Node attrNode = getChildNode(instanceAttrNode, "attributes");
            nvpairsRes = attrNode.getChildNodes();
        } else {
            nvpairsRes = instanceAttrNode.getChildNodes();
        }
        for (int j = 0; j < nvpairsRes.getLength(); j++) {
            final Node optionNode = nvpairsRes.item(j);
            if (optionNode.getNodeName().equals("nvpair")) {
                final String nvpairId = getAttribute(optionNode, "id");
                String name = getAttribute(optionNode, "name");
                final String value = getAttribute(optionNode, "value");
                if (stonith && "priority".equals(name)) {
                    /* so it does not clash with meta attr priority */
                    name = STONITH_PRIORITY_INSTANCE_ATTR;
                }
                params.put(name, value);
                nvpairIds.put(name, nvpairId);
            }
        }
    }

    /* <operations> */
    final Node operationsNode = getChildNode(resourceNode, "operations");
    if (operationsNode != null) {
        final String operationsIdRef = getAttribute(operationsNode, "id-ref");
        if (operationsIdRef == null) {
            final String operationsId = getAttribute(operationsNode, "id");
            operationsIdMap.put(crmId, operationsId);
            operationsIdtoCRMId.put(operationsId, crmId);
            final Map<String, String> opIds = new HashMap<String, String>();
            resOpIdsMap.put(crmId, opIds);
            /* <op> */
            final NodeList ops = operationsNode.getChildNodes();
            for (int k = 0; k < ops.getLength(); k++) {
                final Node opNode = ops.item(k);
                if (opNode.getNodeName().equals("op")) {
                    final String opId = getAttribute(opNode, "id");
                    final String name = getAttribute(opNode, "name");
                    final String timeout = getAttribute(opNode, "timeout");
                    final String interval = getAttribute(opNode, "interval");
                    final String startDelay = getAttribute(opNode, "start-delay");
                    operationsMap.put(crmId, name, "interval", interval);
                    operationsMap.put(crmId, name, "timeout", timeout);
                    operationsMap.put(crmId, name, "start-delay", startDelay);
                    opIds.put(name, opId);
                }
            }
        } else {
            operationsIdRefs.put(crmId, operationsIdRef);
        }
    }

    /* <meta_attributtes> */
    final Node metaAttrsNode = getChildNode(resourceNode, "meta_attributes");
    if (metaAttrsNode != null) {
        final String metaAttrsIdRef = getAttribute(metaAttrsNode, "id-ref");
        if (metaAttrsIdRef == null) {
            final String metaAttrsId = getAttribute(metaAttrsNode, "id");
            metaAttrsIdMap.put(crmId, metaAttrsId);
            metaAttrsIdToCRMId.put(metaAttrsId, crmId);
            /* <attributtes> only til 2.1.4 */
            NodeList nvpairsMA;
            if (Tools.versionBeforePacemaker(host)) {
                final Node attrsNode = getChildNode(metaAttrsNode, "attributes");
                nvpairsMA = attrsNode.getChildNodes();
            } else {
                nvpairsMA = metaAttrsNode.getChildNodes();
            }
            /* <nvpair...> */
            /* target-role and is-managed */
            for (int l = 0; l < nvpairsMA.getLength(); l++) {
                final Node maNode = nvpairsMA.item(l);
                if (maNode.getNodeName().equals("nvpair")) {
                    final String nvpairId = getAttribute(maNode, "id");
                    final String name = getAttribute(maNode, "name");
                    String value = getAttribute(maNode, "value");
                    if (TARGET_ROLE_META_ATTR.equals(name)) {
                        value = value.toLowerCase(Locale.US);
                    }
                    params.put(name, value);
                    nvpairIds.put(name, nvpairId);
                }
            }
        } else {
            metaAttrsIdRefs.put(crmId, metaAttrsIdRef);
        }
    }
}