Java tutorial
/* Copyright (C) 2014 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.monitor.run.composite; import java.util.List; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.PlatformUI; import com.clustercontrol.dialog.CommonDialog; import com.clustercontrol.monitor.run.viewer.TableItemTableViewer; import com.clustercontrol.util.WidgetTestUtil; /** * ??<BR> * * @version 5.0.0 * @since 5.0.0 */ public class TableItemListComposite<T> extends Composite { /** */ protected TableItemTableViewer m_tableViewer = null; /** */ protected ITableItemCompositeDefine<T> m_define = null; /** * ??? * <p> * ?????????? * * @param parent ?? * @param style * @param tableDefine ?{@link com.clustercontrol.bean.TableColumnInfo}? * * @see org.eclipse.swt.SWT * @see org.eclipse.swt.widgets.Composite#Composite(Composite parent, int style) * @see com.clustercontrol.bean.TableColumnInfo#TableColumnInfo(java.lang.String, int, int, int) * @see com.clustercontrol.monitor.run.action.GetStringFilterTableDefine * @see #initialize() */ public TableItemListComposite(Composite parent, int style, ITableItemCompositeDefine<T> define) { super(parent, style); this.m_define = define; this.initialize(); } /** * ????? */ protected void initialize() { GridLayout layout = new GridLayout(1, true); this.setLayout(layout); layout.marginHeight = 0; layout.marginWidth = 0; Table table = new Table(this, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); WidgetTestUtil.setTestId(this, null, table); table.setHeaderVisible(true); table.setLinesVisible(true); GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.verticalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; table.setLayoutData(gridData); // ?? this.m_tableViewer = new TableItemTableViewer(table, this.m_define.getLabelProvider()); this.m_tableViewer.createTableColumn(this.m_define.getTableDefine()); this.m_tableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { T item = getTableItem(); if (item != null) { Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); CommonDialog dialog = m_define.createDialog(shell, item); if (dialog.open() == IDialogConstants.OK_ID) { Table table = getTableViewer().getTable(); WidgetTestUtil.setTestId(this, "doubleclick", table); int selectIndex = table.getSelectionIndex(); m_define.getTableItemInfoManager().modify(item, m_define.getCurrentCreatedItem()); table.setSelection(selectIndex); update(); } } } }); } /** * ???????? * * @return */ public TableItemTableViewer getTableViewer() { return this.m_tableViewer; } /** * ???????? * <p> * ?????????<code>null</code>??? * * @return ? */ @SuppressWarnings("unchecked") public T getTableItem() { StructuredSelection selection = (StructuredSelection) this.m_tableViewer.getSelection(); if (selection == null) { return null; } else { return (T) selection.getFirstElement(); } } /** * ?????????? * * @param info ???? */ public void setInputData(List<T> items) { if (items != null) { // m_define.getTableItemInfoManager().initialize(items); // ? Object[] list = m_define.getTableItemInfoManager().get(); // this.m_tableViewer.setInput(list); } } /** * ????<BR> * ??????? * * @see com.clustercontrol.monitor.run.util.StringValueInfoManager#get() * @see com.com.clustercontrol.monitor.run.viewer.TableItemTableViewer */ @Override public void update() { // ? Object[] list = m_define.getTableItemInfoManager().get(); // this.m_tableViewer.setInput(list); } /** * ???????? * <p> * ???????????? * ????????<code>null</code>??? * * @param monitorInfo ? * @return ? * * @see #setValidateResult(String, String) */ public List<T> getTableItemData() { return this.m_define.getTableItemInfoManager().getTableItemInfoList(); } /* (? Javadoc) * @see org.eclipse.swt.widgets.Control#setEnabled(boolean) */ @Override public void setEnabled(boolean enabled) { this.m_tableViewer.getTable().setEnabled(enabled); } }