Java tutorial
/* Copyright (C) 2016 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.hub.composite; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.log4j.Logger; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.ColumnPixelData; import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; import com.clustercontrol.ClusterControlPlugin; import com.clustercontrol.hub.commons.LogSearchPeriodConstants; import com.clustercontrol.hub.preference.HubPreferencePage; import com.clustercontrol.hub.util.HubEndpointWrapper; import com.clustercontrol.hub.util.TableViewerSorter; import com.clustercontrol.monitor.run.bean.MonitorTypeConstant; import com.clustercontrol.monitor.util.MonitorSettingEndpointWrapper; import com.clustercontrol.util.EndpointManager; import com.clustercontrol.util.HinemosMessage; import com.clustercontrol.util.Messages; import com.clustercontrol.util.UIManager; import com.clustercontrol.viewer.CommonTableViewerSorter; import com.clustercontrol.ws.hub.InvalidRole_Exception; import com.clustercontrol.ws.hub.InvalidSetting_Exception; import com.clustercontrol.ws.hub.Operator; import com.clustercontrol.ws.hub.StringData; import com.clustercontrol.ws.hub.StringQueryInfo; import com.clustercontrol.ws.hub.StringQueryResult; import com.clustercontrol.ws.hub.Tag; import com.clustercontrol.ws.monitor.HinemosUnknown_Exception; import com.clustercontrol.ws.monitor.MonitorInfo; import com.clustercontrol.ws.monitor.MonitorNotFound_Exception; /** * ?<br/> * * @version 6.0.0 * @since 6.0.0 */ public class LogSearchComposite extends Composite { private static Logger logger = Logger.getLogger(LogSearchDateTimeComposite.class); private enum ViewColumn { time(Messages.getString("view.hub.log.search.result.culumn.timestamp"), new ColumnPixelData(110, true, true), new ColumnLabelProvider() { @Override public String getText(Object element) { StringData stringData = (StringData) element; Date date = new Date(stringData.getTime()); SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); return df.format(date); } }), facility(Messages.getString("view.hub.log.search.result.culumn.facility"), new ColumnPixelData(70, true, true), new ColumnLabelProvider() { @Override public String getText(Object element) { StringData stringData = (StringData) element; return stringData.getFacilityId(); } }), monitor(Messages.getString("view.hub.log.search.result.culumn.monitor"), new ColumnPixelData(70, true, true), new ColumnLabelProvider() { @Override public String getText(Object element) { StringData stringData = (StringData) element; return stringData.getMonitorId(); } }), original_message( Messages.getString("view.hub.log.search.result.culumn.original.message"), new ColumnPixelData(370, true, true), new ColumnLabelProvider() { @Override public String getText(Object element) { StringData stringData = (StringData) element; return HinemosMessage.replace(stringData.getData()); } @Override public String getToolTipText(Object element) { return decode((String) getText(element)); } @Override public Point getToolTipShift(Object object) { return new Point(100, 5); } @Override public int getToolTipDisplayDelayTime(Object object) { return 500; } @Override public int getToolTipTimeDisplayed(Object object) { return 500000; } @Override public int getToolTipStyle(Object object) { return SWT.LEFT; } }), etc(Messages.getString("view.hub.log.search.result.culumn.etc"), new ColumnPixelData(370, true, true), new ColumnLabelProvider() { @Override public String getText(Object element) { StringData stringData = (StringData) element; final StringBuffer label = new StringBuffer(); List<Tag> tags = stringData.getTagList(); for (Tag tag : tags) { if (label.length() > 0) { label.append(","); } label.append(tag.getKey() + "=" + tag.getValue()); } return label.toString(); } }); private String label; private ColumnLabelProvider provider; private ColumnPixelData pixelData; ViewColumn(String label, ColumnPixelData pixelData, ColumnLabelProvider provider) { this.label = label; this.pixelData = pixelData; this.provider = provider; } public String getLabel() { return label; } public ColumnPixelData getPixelData() { return pixelData; } public ColumnLabelProvider getProvider() { return provider; } } private String manager; private String facilityId; private int dataCount; private int dispOffset; private int dispSize; private Long from; private Long to; private String monitorId; private String keywords; private Operator ope; private Text txtKeywords; private Combo cmbMonitorId; private Button btnAnd; private Button btnOr; private Combo cmbPeriod; private Button btnPerv; private Button btnNext; private Button btnTop; private Button btnEnd; private LogSearchDateTimeComposite dateTimeCompositeFrom; private LogSearchDateTimeComposite dateTimeCompositeTo; private Label lbltotal; private Text browser; /** ?? */ private Label lblPage; private TableViewer tableViewer; private Table table; public LogSearchComposite(Composite parent, int style) { super(parent, style); initialize(); } private void initialize() { setLayout(new GridLayout(1, false)); // UI Composite searchComposite = new Composite(this, SWT.NONE); searchComposite.setLayout(new GridLayout(1, false)); Composite compositePeriod = new Composite(searchComposite, SWT.NONE); GridLayout gl_groupPeriod = new GridLayout(12, false); gl_groupPeriod.verticalSpacing = 0; compositePeriod.setLayout(gl_groupPeriod); GridData gd_groupPeriod = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); gd_groupPeriod.widthHint = 50; compositePeriod.setLayoutData(gd_groupPeriod); Label lblPeriod = new Label(compositePeriod, SWT.NONE); GridData gd_lblPeriod = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1); gd_lblPeriod.widthHint = 81; lblPeriod.setLayoutData(gd_lblPeriod); lblPeriod.setText(Messages.getString("view.hub.log.search.condition.period.select")); cmbPeriod = new Combo(compositePeriod, SWT.READ_ONLY); GridData gd_cmbPeriod = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_cmbPeriod.widthHint = 111; cmbPeriod.setLayoutData(gd_cmbPeriod); cmbPeriod.setText(LogSearchPeriodConstants.ALL); cmbPeriod.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Combo select = (Combo) e.getSource(); List<Calendar> list = LogSearchPeriodConstants.getPeriod(select.getText()); if (list == null) { cmbPeriod.setText(LogSearchPeriodConstants.ALL); } else { dateTimeCompositeFrom.setPeriod(list.get(0)); dateTimeCompositeTo.setPeriod(list.get(1)); } if (LogSearchPeriodConstants.ALL.equals(select.getText())) { enableDateTime(false); } else { enableDateTime(true); } update(); } }); Label label = new Label(compositePeriod, SWT.NONE); GridData gd_label = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_label.widthHint = 10; label.setLayoutData(gd_label); dateTimeCompositeFrom = new LogSearchDateTimeComposite(compositePeriod, SWT.NONE); GridData gd_dateTimeComposite = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1); gd_dateTimeComposite.widthHint = 250; dateTimeCompositeFrom.setLayoutData(gd_dateTimeComposite); GridLayout gridLayout = (GridLayout) dateTimeCompositeFrom.getLayout(); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; Label lblFromTo = new Label(compositePeriod, SWT.NONE); lblFromTo.setAlignment(SWT.CENTER); GridData gd_lblFromTo = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_lblFromTo.widthHint = 39; lblFromTo.setLayoutData(gd_lblFromTo); lblFromTo.setText(Messages.getString("wave")); dateTimeCompositeTo = new LogSearchDateTimeComposite(compositePeriod, SWT.NONE); gd_dateTimeComposite = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1); gd_dateTimeComposite.widthHint = 250; dateTimeCompositeTo.setLayoutData(gd_dateTimeComposite); gridLayout = (GridLayout) dateTimeCompositeTo.getLayout(); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; enableDateTime(false); // UI - Composite compositeKeyword = new Composite(searchComposite, SWT.NONE); GridLayout gl_compositeKeyword = new GridLayout(4, false); gl_compositeKeyword.marginHeight = 0; compositeKeyword.setLayout(gl_compositeKeyword); GridData gd_compositeKeyword = new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1); gd_compositeKeyword.heightHint = 60; compositeKeyword.setLayoutData(gd_compositeKeyword); Label lblMonitorId = new Label(compositeKeyword, SWT.NONE); GridData gd_lblMonitorId = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_lblMonitorId.widthHint = 81; lblMonitorId.setLayoutData(gd_lblMonitorId); lblMonitorId.setText(Messages.getString("monitor.id")); cmbMonitorId = new Combo(compositeKeyword, SWT.READ_ONLY); GridData gd_monitorId = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1); gd_monitorId.heightHint = 18; gd_monitorId.widthHint = 481; cmbMonitorId.setLayoutData(gd_monitorId); cmbMonitorId.addMouseListener(new MouseListener() { @Override public void mouseDoubleClick(MouseEvent e) { } @Override public void mouseDown(MouseEvent e) { update(); } @Override public void mouseUp(MouseEvent e) { } }); new Label(compositeKeyword, SWT.NONE); for (String str : LogSearchPeriodConstants.getPeriodStrList()) { cmbPeriod.add(str); } cmbPeriod.select(0); new Label(compositeKeyword, SWT.NONE); Label lblKeyword = new Label(compositeKeyword, SWT.NONE); GridData gd_lblKeyword = new GridData(SWT.LEFT, SWT.BOTTOM, false, false, 1, 1); gd_lblKeyword.widthHint = 81; lblKeyword.setLayoutData(gd_lblKeyword); lblKeyword.setText(Messages.getString("view.hub.log.search.condition.keyword")); txtKeywords = new Text(compositeKeyword, SWT.BORDER); GridData gd_txtKeywords = new GridData(SWT.FILL, SWT.BOTTOM, true, false, 1, 1); gd_txtKeywords.widthHint = 436; txtKeywords.setLayoutData(gd_txtKeywords); // UI - ? AND/OR Composite compositeConditionAndOr = new Composite(compositeKeyword, SWT.NONE); GridLayout gl_compositeConditionAndOr = new GridLayout(2, false); gl_compositeConditionAndOr.verticalSpacing = 1; compositeConditionAndOr.setLayout(gl_compositeConditionAndOr); compositeConditionAndOr.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1)); btnAnd = new Button(compositeConditionAndOr, SWT.RADIO); btnAnd.setText(Messages.getString("and")); btnAnd.setSelection(true); btnOr = new Button(compositeConditionAndOr, SWT.RADIO); btnOr.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); btnOr.setText(Messages.getString("or")); Button btnSearchSimply = new Button(compositeKeyword, SWT.NONE); GridData gd_btnSearchSimply = new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1); gd_btnSearchSimply.widthHint = 80; btnSearchSimply.setLayoutData(gd_btnSearchSimply); btnSearchSimply.setSize(300, 30); btnSearchSimply.setText(Messages.getString("search")); btnSearchSimply.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // StringQueryInfo query = makeNewQuery(); StringQueryResult stringQueryResult = getQueryExecute(manager, query); updateResultComposite(query, stringQueryResult); } }); // ?UI Composite resultComposite = new Composite(this, SWT.NONE); resultComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); resultComposite.setLayout(new GridLayout(2, false)); TabFolder tabFolder = new TabFolder(resultComposite, SWT.NONE); GridData gd_tabFolder = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); gd_tabFolder.heightHint = 676; tabFolder.setLayoutData(gd_tabFolder); // Not working Start(WindowBuilder) TabItem tbtmTable = new TabItem(tabFolder, SWT.NONE); tbtmTable.setText(Messages.getString("view.hub.log.search.result.tab.list")); Composite compositeTable = new Composite(tabFolder, SWT.NONE); tbtmTable.setControl(compositeTable); compositeTable.setLayout(new GridLayout(1, false)); TableColumnLayout tcl_composite_1 = new TableColumnLayout(); compositeTable.setLayout(tcl_composite_1); tableViewer = new TableViewer(compositeTable, SWT.FULL_SELECTION | SWT.MULTI); ColumnViewerToolTipSupport.enableFor(tableViewer); table = tableViewer.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); for (final ViewColumn column : ViewColumn.values()) { TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn tableColumn = tableViewerColumn.getColumn(); tcl_composite_1.setColumnData(tableColumn, column.getPixelData()); tableColumn.setText(column.getLabel()); tableViewerColumn.setLabelProvider(column.getProvider()); tableColumn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.setSorter(new TableViewerSorter(tableViewer, column.getProvider())); } }); } tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { } }); tableViewer.setSorter(new CommonTableViewerSorter(ViewColumn.time.ordinal())); TabItem tbtmSource = new TabItem(tabFolder, SWT.NONE); tbtmSource.setText(Messages.getString("view.hub.log.search.result.tab.original.message")); Composite compositeSource = new Composite(tabFolder, SWT.NONE); tbtmSource.setControl(compositeSource); compositeSource.setLayout(new GridLayout(1, false)); GridData gd_Source = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_Source.heightHint = 634; compositeSource.setLayoutData(gd_Source); browser = new Text(compositeSource, SWT.READ_ONLY | SWT.MULTI); browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // Not working End(WindowBuilder) Composite compositePageNumber = new Composite(resultComposite, SWT.NONE); GridLayout gl_compositePageNumber = new GridLayout(6, false); gl_compositePageNumber.marginHeight = 0; compositePageNumber.setLayout(gl_compositePageNumber); GridData gd_pagerComposite = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); // gd_pagerComposite.heightHint = 24; // gd_pagerComposite.widthHint = 411; compositePageNumber.setLayoutData(gd_pagerComposite); lbltotal = new Label(compositePageNumber, SWT.RIGHT); GridData gd_lbltotal = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); lbltotal.setLayoutData(gd_lbltotal); lbltotal.setText(Messages.getString("view.hub.log.search.result.page.number", new Object[] { "0", "0", "0", "0.0" })); btnTop = new Button(compositePageNumber, SWT.NONE); btnTop.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnTop.setText("<<"); btnTop.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { StringQueryInfo query = makeContinuousQuery(0, getDataCountPerPage(getTable())); StringQueryResult stringQueryResult = getQueryExecute(manager, query); updateResultComposite(query, stringQueryResult); } }); btnTop.setEnabled(false); btnPerv = new Button(compositePageNumber, SWT.NONE); btnPerv.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnPerv.setText("<"); btnPerv.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int offset = Math.max(0, dispOffset - getDataCountPerPage(getTable())); StringQueryInfo query = makeContinuousQuery(offset, getDataCountPerPage(getTable())); StringQueryResult stringQueryResult = getQueryExecute(manager, query); updateResultComposite(query, stringQueryResult); } }); btnPerv.setEnabled(false); Composite composite = new Composite(compositePageNumber, SWT.NONE); GridData gd_composite = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1); gd_composite.widthHint = 133; composite.setLayoutData(gd_composite); GridData gd_compositePageNumber = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_compositePageNumber.widthHint = 76; composite.setLayoutData(gd_compositePageNumber); composite.setLayout(new GridLayout(1, false)); lblPage = new Label(composite, SWT.CENTER); lblPage.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); lblPage.setText("0 / 0"); btnNext = new Button(compositePageNumber, SWT.NONE); btnNext.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnNext.setText(">"); btnNext.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int offset = dispOffset + dispSize; StringQueryInfo query = makeContinuousQuery(offset, getDataCountPerPage(getTable())); StringQueryResult stringQueryResult = getQueryExecute(manager, query); // ????? if (0 == stringQueryResult.getSize()) { return; } updateResultComposite(query, stringQueryResult); } }); btnNext.setEnabled(false); btnEnd = new Button(compositePageNumber, SWT.NONE); btnEnd.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnEnd.setText(">>"); btnEnd.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int dataCountPerPage = getDataCountPerPage(getTable()); int pageCount = dataCount / dataCountPerPage; pageCount = (dataCount % dataCountPerPage) == 0 ? pageCount - 1 : pageCount; int offset = pageCount * dataCountPerPage; StringQueryInfo query = makeContinuousQuery(offset, getDataCountPerPage(getTable())); StringQueryResult stringQueryResult = getQueryExecute(manager, query); // ????? if (0 == stringQueryResult.getSize()) { return; } updateResultComposite(query, stringQueryResult); } }); btnEnd.setEnabled(false); } private void enableDateTime(boolean enable) { dateTimeCompositeFrom.setEnabled(enable); dateTimeCompositeTo.setEnabled(enable); } private StringQueryInfo makeNewQuery() { ope = btnAnd.getSelection() ? Operator.AND : Operator.OR; if (cmbMonitorId.getText().isEmpty()) { monitorId = null; } else { monitorId = cmbMonitorId.getText(); } if (LogSearchPeriodConstants.ALL.equals(cmbPeriod.getText())) { from = null; to = null; } else { from = dateTimeCompositeFrom.getEpochMillis(); to = dateTimeCompositeTo.getEpochMillis(); } keywords = txtKeywords.getText(); return makeQuery(from, to, monitorId, keywords, ope, 0, getDataCountPerPage(getTable()), true); } private StringQueryInfo makeContinuousQuery(int dispOffset, int dispSize) { return makeQuery(from, to, monitorId, keywords, ope, dispOffset, dispSize, true); } private StringQueryInfo makeQuery(Long from, Long to, String monitorId, String keywords, Operator ope, int dispOffset, int dispSize, boolean firstQuery) { StringQueryInfo query = new StringQueryInfo(); query.setFacilityId(facilityId); query.setOperator(ope); query.setMonitorId(monitorId); query.setOffset(dispOffset); query.setSize(dispSize); query.setFrom(from); query.setTo(to); query.setKeywords(keywords); query.setNeedCount(firstQuery); return query; } /** * ?????????<BR> * * @return */ public Table getTable() { return tableViewer.getTable(); } /** * ?????????<BR> * * @return */ public TableViewer getTableViewer() { return tableViewer; } /** * ??? * @param managerName ??? */ private StringQueryResult getQueryExecute(String managerName, StringQueryInfo query) { Map<String, String> errorMsgs = new HashMap<>(); StringQueryResult stringQueryResult = null; try { HubEndpointWrapper wrapper = HubEndpointWrapper.getWrapper(managerName); stringQueryResult = wrapper.queryCollectStringData(query); } catch (InvalidSetting_Exception e) { errorMsgs.put(managerName, Messages.getString(HinemosMessage.replace(e.getMessage()))); } catch (InvalidRole_Exception e) { errorMsgs.put(managerName, Messages.getString("message.accesscontrol.16")); } catch (Exception e) { Logger.getLogger(this.getClass()).warn("getLogTransferDestTypeMstList(), " + e.getMessage(), e); errorMsgs.put(managerName, Messages.getString("message.hinemos.failure.unexpected") + ", " + HinemosMessage.replace(e.getMessage())); } // if (0 < errorMsgs.size()) { UIManager.showMessageBox(errorMsgs, true); } return stringQueryResult; } private void updateResultComposite(StringQueryInfo query, StringQueryResult result) { if (result == null) { return; } // if (query.isNeedCount()) { dataCount = result.getCount(); } // ? Table table = tableViewer.getTable(); long dateCntPerPage = getDataCountPerPage(table); if (dateCntPerPage == 0) { return; } long allPage = dataCount / dateCntPerPage + ((dataCount % dateCntPerPage) != 0 ? 1 : 0); dispOffset = result.getOffset(); dispSize = result.getSize(); long currentPage = 0; long dataFrom = dispOffset; if (dataCount != 0) { currentPage = result.getOffset() / dateCntPerPage + 1; dataFrom += 1; } lbltotal.setText(Messages.getString("view.hub.log.search.result.page.number", new Object[] { dataCount, dataFrom, dispOffset + dispSize, new DecimalFormat("#.##").format(((double) result.getTime()) / 1000) })); lblPage.setText(currentPage + " / " + allPage); tableViewer.setInput(result.getDataList()); updateSourceView(result.getDataList()); btnPerv.setEnabled(currentPage > 1); btnNext.setEnabled(currentPage < allPage); btnTop.setEnabled(currentPage > 1); btnEnd.setEnabled(currentPage < allPage); } private int getDataCountPerPage(Table table) { if (null == table) { return 0; } return ClusterControlPlugin.getDefault().getPreferenceStore().getInt(HubPreferencePage.P_SIZE_POS); } private void updateSourceView(List<StringData> stringDataList) { if (null == stringDataList) { return; } StringBuffer sb = new StringBuffer(); for (StringData stringData : stringDataList) { sb.append(stringData.getData()).append("\n"); } browser.setText(sb.toString()); } public static String decode(String text) { text = text.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">") .replaceAll(""", "\"").replaceAll("¥", "\\").replaceAll(" ", " ") .replaceAll(" ", "\t").replaceAll("<br/>", "\r\n"); return text; } public void setManager(String manager) { this.manager = manager; } public void setFacilityId(String facilityId) { this.facilityId = facilityId; } public void updateMonitorCombo() { // Message collecting Map<String, String> errMsgs = new ConcurrentHashMap<>(); // ? Map<String, List<MonitorInfo>> dispDataMap = new ConcurrentHashMap<>(); for (String managerName : EndpointManager.getActiveManagerSet()) { getMonitorList(managerName, dispDataMap, errMsgs); } // Show message box if (0 < errMsgs.size()) { UIManager.showMessageBox(errMsgs, true); } this.cmbMonitorId.add(""); for (Map.Entry<String, List<MonitorInfo>> e : dispDataMap.entrySet()) { if (e.getKey().equals(this.manager)) { for (MonitorInfo monitor : e.getValue()) { if (isCollectableMonitor(monitor.getMonitorType())) { this.cmbMonitorId.add(monitor.getMonitorId()); } } } } this.cmbMonitorId.select(0); } private boolean isCollectableMonitor(Integer monitorType) { boolean ret = false; if (MonitorTypeConstant.TYPE_STRING == monitorType || MonitorTypeConstant.TYPE_TRAP == monitorType) { ret = true; } return ret; } private void getMonitorList(String managerName, Map<String, List<MonitorInfo>> dispDataMap, Map<String, String> errorMsgs) { try { MonitorSettingEndpointWrapper wrapper = MonitorSettingEndpointWrapper.getWrapper(managerName); List<MonitorInfo> list = wrapper.getMonitorList(); if (null != list) { dispDataMap.put(managerName, list); } } catch (MonitorNotFound_Exception | HinemosUnknown_Exception e) { errorMsgs.put(managerName, Messages.getString("message.monitor.67") + ", " + HinemosMessage.replace(e.getMessage())); } catch (Exception e) { logger.warn("update() getMonitorList, " + HinemosMessage.replace(e.getMessage()), e); errorMsgs.put(managerName, Messages.getString("message.hinemos.failure.unexpected") + ", " + HinemosMessage.replace(e.getMessage())); } } }