/** * Դ�������ƣ�IndexSelectEditorDialog.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui * ����˵����$desc * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.database.ui.editors.dialog; import java.util.ArrayList; import java.util.Collection; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.viewers.ColumnViewer; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.database.ui.DatabaseUI; import com.hundsun.ares.studio.jres.database.ui.editors.dialog.inner.IndexTable; import com.hundsun.ares.studio.jres.model.database.DatabaseFactory; import com.hundsun.ares.studio.jres.model.database.TableIndex; import com.hundsun.ares.studio.jres.model.database.TableIndexColumn; import com.hundsun.ares.studio.jres.model.database.TableResourceData; /** * @author wangxh * */ public class IndexSelectEditorDialog extends Dialog { private ColumnViewer viewer; private String title; private IARESResource resource; private TableResourceData tableResourceData; /** * @param parentShell * @param Title * @param Viewer * @param resource */ public IndexSelectEditorDialog(Shell parentShell, String Title, ColumnViewer Viewer, IARESResource resource,TableResourceData tableResourceData) { super(parentShell); this.title = Title; this.viewer = Viewer; this.resource = resource; this.tableResourceData = tableResourceData; } /* * (non-Javadoc) * * @see * org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets * .Shell) */ @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText(title); newShell.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(DatabaseUI.PLUGIN_ID, "icons/table.gif").createImage()); } private Object outputData; protected void okPressed() { outputData=table.getInput(); super.okPressed(); } IndexTable table; /* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) */ @Override protected Control createDialogArea(Composite parent) { Composite composite= (Composite)super.createDialogArea(parent); GridLayoutFactory.fillDefaults().numColumns(3).margins(10, 10).applyTo(composite); GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).applyTo(composite); table=new IndexTable(composite, resource ,tableResourceData); IStructuredSelection select = (IStructuredSelection) viewer.getSelection(); Object obj = select.getFirstElement(); if(obj instanceof TableIndex){ Collection<TableIndexColumn> temp=((TableIndex) obj).getColumns(); Collection<TableIndexColumn> inputs=new ArrayList<TableIndexColumn>(); for(TableIndexColumn column:temp){ TableIndexColumn copy=DatabaseFactory.eINSTANCE.createTableIndexColumn(); copy.setAscending(column.isAscending()); copy.setColumnName(column.getColumnName()); copy.setColumnType(column.getColumnType()); inputs.add(copy); } table.setInput(inputs); } return composite; } public Object getResult(){ return outputData; } /* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#isResizable() */ @Override protected boolean isResizable() { return true; } }