List of usage examples for org.apache.commons.collections15.map MultiKeyMap put
public V put(K key1, K key2, K key3, V value)
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); } } }