Java tutorial
/* Copyright (C) 2006 NTT DATA Corporation This program is free software; you can redistribute it and/or Modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ package com.clustercontrol.performance.monitor.composite; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import com.clustercontrol.bean.HinemosModuleConstant; import com.clustercontrol.bean.RequiredFieldColorConstant; import com.clustercontrol.dialog.ValidateResult; import com.clustercontrol.monitor.util.MonitorSettingEndpointWrapper; import com.clustercontrol.performance.util.CollectorItemCodeFactory; import com.clustercontrol.util.HinemosMessage; import com.clustercontrol.util.Messages; import com.clustercontrol.ws.monitor.CollectorItemInfo; import com.clustercontrol.ws.monitor.InvalidRole_Exception; import com.clustercontrol.ws.monitor.MonitorInfo; import com.clustercontrol.ws.monitor.PerfCheckInfo; import com.clustercontrol.util.WidgetTestUtil; /** * ???? * * @version 4.0.0 * @since 2.0.0 */ public class CollectorItemComboComposite extends Composite { // private static Log m_log = LogFactory.getLog(CollectorItemComboComposite.class); public static final int WIDTH_TITLE = 2; public static final int WIDTH_TITLE_WIDE = 3; public static final int WIDTH_VALUE = 10; /** ? */ private Combo m_comboCollectorItem = null; public CollectorItemComboComposite(Composite parent, int style) { super(parent, style); this.initialize(); } /** * ????? */ private void initialize() { // ???? Label label = null; // ???? GridData gridData = null; GridLayout layout = new GridLayout(1, true); layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 15; this.setLayout(layout); /* * ? */ // label = new Label(this, SWT.NONE); WidgetTestUtil.setTestId(this, "monitoritem", label); gridData = new GridData(); gridData.horizontalSpan = WIDTH_TITLE_WIDE; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; label.setLayoutData(gridData); label.setText(Messages.getString("monitor.item") + " : "); // label = new Label(this, SWT.NONE); WidgetTestUtil.setTestId(this, "space1", label); gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; label.setLayoutData(gridData); // this.m_comboCollectorItem = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY); WidgetTestUtil.setTestId(this, null, m_comboCollectorItem); gridData = new GridData(); gridData.horizontalSpan = WIDTH_VALUE; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; this.m_comboCollectorItem.setLayoutData(gridData); this.m_comboCollectorItem.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent arg0) { update(); } }); // label = new Label(this, SWT.NONE); WidgetTestUtil.setTestId(this, "space2", label); gridData = new GridData(); gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; label.setLayoutData(gridData); // ? this.update(); } /** * ? * */ @Override public void update() { // ? if ("".equals(this.m_comboCollectorItem.getText())) { this.m_comboCollectorItem.setBackground(RequiredFieldColorConstant.COLOR_REQUIRED); } else { this.m_comboCollectorItem.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); } } /** * ??????? * * @param facilityId ID */ public void setCollectorItemCombo(String managerName, String facilityId) { // ??? List<CollectorItemInfo> itemInfoList = null; try { MonitorSettingEndpointWrapper wrapper = MonitorSettingEndpointWrapper.getWrapper(managerName); itemInfoList = wrapper.getAvailableCollectorItemList(facilityId); } catch (InvalidRole_Exception e) { // ?????? MessageDialog.openInformation(null, Messages.getString("message"), Messages.getString("message.accesscontrol.16")); } catch (Exception e) { // ? m_log.warn("setCollectorItemCombo() getAvailableCollectorItemList, " + e.getMessage(), e); MessageDialog.openInformation(null, Messages.getString("message"), Messages.getString("message.hinemos.failure.unexpected") + ", " + HinemosMessage.replace(e.getMessage())); } if (itemInfoList == null) { itemInfoList = new ArrayList<CollectorItemInfo>(); } // ????? m_comboCollectorItem.removeAll(); // ?? m_comboCollectorItem.add(""); m_comboCollectorItem.setData("", null); Iterator<CollectorItemInfo> itr = itemInfoList.iterator(); while (itr.hasNext()) { CollectorItemInfo itemInfo = itr.next(); String itemName = CollectorItemCodeFactory.getFullItemName(managerName, itemInfo); itemName = HinemosMessage.replace(itemName); m_comboCollectorItem.add(itemName); m_comboCollectorItem.setData(itemName, itemInfo); } } /** * ????? * @return ? */ public CollectorItemInfo getCollectorItem() { String itemName = m_comboCollectorItem.getText(); CollectorItemInfo itemInfo = (CollectorItemInfo) m_comboCollectorItem.getData(itemName); return itemInfo; } /** * ?????? * @param monitor */ public void select(String managerName, MonitorInfo monitor) { // PerfCheckInfo perfCheckInfo = monitor.getPerfCheckInfo(); // ?????????????? if (perfCheckInfo == null) { return; } String facilityId = monitor.getFacilityId(); setCollectorItemCombo(managerName, facilityId); int index = 0; List<CollectorItemInfo> itemInfoList = null; try { MonitorSettingEndpointWrapper wrapper = MonitorSettingEndpointWrapper.getWrapper(managerName); itemInfoList = wrapper.getAvailableCollectorItemList(facilityId); } catch (InvalidRole_Exception e) { // ?????? MessageDialog.openInformation(null, Messages.getString("message"), Messages.getString("message.accesscontrol.16")); } catch (Exception e) { // ? m_log.warn("select() getAvailableCollectorItemList, " + e.getMessage(), e); MessageDialog.openInformation(null, Messages.getString("message"), Messages.getString("message.hinemos.failure.unexpected") + ", " + HinemosMessage.replace(e.getMessage())); } if (itemInfoList == null) { itemInfoList = new ArrayList<CollectorItemInfo>(); } Iterator<CollectorItemInfo> itr = itemInfoList.iterator(); // getAvailableCollectorItemList?CPU???? // ???????i=1??? int i = 1; while (itr.hasNext()) { CollectorItemInfo itemInfo = itr.next(); if (itemInfo.getItemCode().equals(perfCheckInfo.getItemCode()) && itemInfo.getDisplayName().equals(perfCheckInfo.getDeviceDisplayName())) { index = i; break; } i++; } this.m_comboCollectorItem.select(index); } /** * ?????? * * @return ? */ public ValidateResult createInputData(MonitorInfo info) { if (info != null) { // PerfCheckInfo perfCheckInfo = info.getPerfCheckInfo(); if (this.m_comboCollectorItem.getText() != null && !"".equals((this.m_comboCollectorItem.getText()).trim())) { String itemName = this.m_comboCollectorItem.getText(); CollectorItemInfo itemInfo = (CollectorItemInfo) m_comboCollectorItem.getData(itemName); perfCheckInfo.setMonitorTypeId(HinemosModuleConstant.MONITOR_PERFORMANCE); perfCheckInfo.setMonitorId(info.getMonitorId()); perfCheckInfo.setItemCode(itemInfo.getItemCode()); if (itemInfo.getDisplayName() != null) { perfCheckInfo.setDeviceDisplayName(itemInfo.getDisplayName()); } else { perfCheckInfo.setDeviceDisplayName(""); } info.setPerfCheckInfo(perfCheckInfo); } } return null; } /** * ????? * */ protected ValidateResult setValidateResult(String id, String message) { ValidateResult validateResult = new ValidateResult(); validateResult.setValid(false); validateResult.setID(id); validateResult.setMessage(message); return validateResult; } public Combo getCombo() { return this.m_comboCollectorItem; } }