package net.ms.designer.editors.workflow.dialog; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import net.ms.designer.editors.workflow.Constants; import net.ms.designer.editors.workflow.models.ApplicationActivity; import net.ms.designer.editors.workflow.models.ParameterEntire; import net.ms.designer.editors.workflow.models.SystemAppActivity; import net.ms.designer.editors.workflow.models.WorkflowDiagram; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.jface.viewers.TableLayout; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; 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.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.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.internal.UIPlugin; public class ConditionDialog extends TitleAreaDialog { private Shell shell; private ApplicationActivity application; private Text txtAppName,txtAppDesc,txtAppPath; private String sysContentTxt = "",userContentTxt= ""; private Combo comboAppType; private Label labelApp,labelAppName,labelAppDesc,labelAppType; private TableViewer tvAppPara; private Button btnAppParaCreate,btnAppParaEdit,btnAppParaDelete; public List appParaList = new ArrayList(); ConditionDialog myself = this; ApplicationListDialog applicationListDialog ; public ConditionDialog(Shell parentShell, ApplicationActivity application, ApplicationListDialog applicationListDialog) { super(parentShell); this.shell = parentShell; this.application = application; if(applicationListDialog.activityPropDialog.allApplicationList == null || applicationListDialog.activityPropDialog.allApplicationList.size()<1) { applicationListDialog.activityPropDialog.allApplicationList = new ArrayList(); } this.applicationListDialog = applicationListDialog; if(this.application != null && this.application.getApplicationId().length()>0) { if(this.application.getApplicationType().equals("0")) { this.sysContentTxt = this.application.getApplicationPath(); } else this.userContentTxt = this.application.getApplicationPath(); } } protected Control createDialogArea(Composite parent) { setTitle("�Զ���Ӧ��"); setMessage(" �趨�Զ���Ӧ������"); TabFolder tabFolder = new TabFolder(parent,SWT.NONE); tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH)); TabItem tabItem_1 = new TabItem(tabFolder,SWT.NONE); Composite mainComp = new Composite(tabFolder,SWT.NULL); tabItem_1.setText("����"); GridLayout layout0 = new GridLayout(); layout0.marginHeight = 5; layout0.marginWidth = 20; layout0.verticalSpacing = 8; mainComp.setLayoutData(new GridData(GridData.FILL_BOTH)); mainComp.setLayout(layout0); tabItem_1.setControl(mainComp); GridData labelGridData = new GridData(GridData.HORIZONTAL_ALIGN_END); GridData txtGridData = new GridData(GridData.FILL_HORIZONTAL); GridData comboGridData = new GridData(GridData.FILL_HORIZONTAL); Composite composite1 = new Composite(mainComp,SWT.NULL); GridLayout layout1 = new GridLayout(); layout1.verticalSpacing = 8; layout1.numColumns = 2; composite1.setLayoutData(new GridData(GridData.FILL_BOTH)); composite1.setLayout(layout1); labelAppName = new Label(composite1,SWT.NONE); labelAppName.setLayoutData(labelGridData); labelAppName.setText("Ӧ������"); this.txtAppName= new Text(composite1,SWT.BORDER); txtAppName.setLayoutData(txtGridData); labelAppDesc = new Label(composite1,SWT.NONE); labelAppDesc.setLayoutData(labelGridData); labelAppDesc.setText("Ӧ������"); this.txtAppDesc= new Text(composite1,SWT.BORDER); txtAppDesc.setLayoutData(txtGridData); labelAppType = new Label(composite1,SWT.NONE); labelAppType.setLayoutData(labelGridData); labelAppType.setText("Ӧ������"); this.comboAppType = new Combo(composite1,SWT.DROP_DOWN | SWT.READ_ONLY); comboAppType.setLayoutData(comboGridData); comboAppType.add("Action��",0); comboAppType.add("���ʽ",1); comboAppType.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { if(comboAppType.getSelectionIndex() == 0) { labelApp.setText("Java����"); txtAppPath.setText(sysContentTxt); } if(comboAppType.getSelectionIndex() == 1) { labelApp.setText("ִ��URL"); txtAppPath.setText(userContentTxt); } } }); labelApp = new Label(composite1,SWT.NONE); labelApp.setLayoutData(labelGridData); this.txtAppPath = new Text(composite1,SWT.BORDER); txtAppPath.setLayoutData(txtGridData); txtAppPath.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { if(comboAppType.getSelectionIndex() == 0) { sysContentTxt = txtAppPath.getText(); } if(comboAppType.getSelectionIndex() == 1) { userContentTxt = txtAppPath.getText(); } } }); if(this.comboAppType.getSelectionIndex() == 0) { labelApp.setText("Action��"); txtAppPath.setText(this.sysContentTxt); } if(this.comboAppType.getSelectionIndex() == 1) { labelApp.setText("���ʽ"); txtAppPath.setText(this.userContentTxt); } TabItem tabItem_2 = new TabItem(tabFolder,SWT.NONE); Composite composite2 = new Composite(tabFolder,SWT.NONE); GridLayout layout2 = new GridLayout(); layout2.marginHeight = 5; layout2.marginWidth = 20; layout2.verticalSpacing = 8; layout2.numColumns = 1; composite2.setLayoutData(new GridData(GridData.FILL_BOTH)); composite2.setLayout(layout2); tabItem_2.setText("����"); tabItem_2.setControl(composite2); tvAppPara = new TableViewer(composite2, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); tvAppPara.getTable().setHeaderVisible(true); tvAppPara.getTable().setLinesVisible(true); TableLayout tLayout = new TableLayout(); tvAppPara.getTable().setLayout(tLayout); GridData tvAppParaGridData = new GridData(GridData.FILL_BOTH); tvAppParaGridData.verticalSpan = 15; tvAppPara.getTable().setLayoutData(tvAppParaGridData); TableColumn column1 = new TableColumn(tvAppPara.getTable(), SWT.SINGLE); column1.setText("��������"); column1.setWidth(120); TableColumn column2 = new TableColumn(tvAppPara.getTable(), SWT.SINGLE); column2.setText("��������"); column2.setWidth(120); TableColumn column3 = new TableColumn(tvAppPara.getTable(), SWT.SINGLE); column3.setText("����/���"); column3.setWidth(120); tvAppPara.setContentProvider(new TableViewerContentProvider()); tvAppPara.setLabelProvider(new TableViewerLabelProvider()); tvAppPara.setInput(appParaList); Composite btnComposite = new Composite(composite2,SWT.NONE); btnComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); GridLayout btnComLayout = new GridLayout(); btnComLayout.numColumns = 3; btnComLayout.makeColumnsEqualWidth = true; btnComposite.setLayout(btnComLayout); this.btnAppParaCreate = new Button(btnComposite,SWT.NONE); // btnAppCreate.setLayoutData(btnGridData); btnAppParaCreate.setText(" �� �� "); btnAppParaCreate.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { WorkflowParameterDialog paraDialog = new WorkflowParameterDialog(UIPlugin.getDefault() .getWorkbench().getActiveWorkbenchWindow().getShell(),null,null,null,null,myself); paraDialog.open(); } }); this.btnAppParaEdit = new Button(btnComposite,SWT.NONE); // btnAppEdit.setLayoutData(btnGridData); btnAppParaEdit.setText(" �� �� "); btnAppParaEdit.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if(tvAppPara.getTable().getSelectionIndex()<0) { { MessageDialog.openConfirm(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "��ѡ��һ������", "��ѡ��һ������"); return; } } WorkflowParameterDialog paraDialog = new WorkflowParameterDialog(UIPlugin.getDefault() .getWorkbench().getActiveWorkbenchWindow().getShell(), (ParameterEntire)(tvAppPara.getElementAt(tvAppPara.getTable().getSelectionIndex())),null,null,null,myself); paraDialog.open(); } }); this.btnAppParaDelete = new Button(btnComposite,SWT.NONE); btnAppParaDelete.setText(" ɾ �� "); btnAppParaDelete.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if(tvAppPara.getTable().getSelectionIndex()<0) { { MessageDialog.openConfirm(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "��ѡ��һ������", "��ѡ��һ������"); return; } } Iterator it = appParaList.iterator(); while(it.hasNext()) { ParameterEntire para = (ParameterEntire)it.next(); if(para.getParaName().equals(((ParameterEntire)tvAppPara.getElementAt(tvAppPara.getTable().getSelectionIndex())).getParaName())) { tvAppPara.remove(para); break; } } refresh(); } } ); this.setPrioTextContent(); return tabFolder; } private void setPrioTextContent() { labelAppName.setText("Ӧ������"); labelAppDesc.setText("Ӧ������"); labelAppType.setText("Ӧ������"); if(this.application != null && this.application.getApplicationId().length()>0) { this.txtAppName.setText(application.getApplicationName()); this.txtAppDesc.setText(application.getApplicationDesc()); this.comboAppType.select(new Integer(application.getApplicationType()).intValue()); this.appParaList = application.getWfApplicationParam(); this.refresh(); } } protected void buttonPressed(int buttonId) { if (buttonId == IDialogConstants.OK_ID) { if(this.txtAppName.getText() == null && this.txtAppName.getText().length()<1) { MessageDialog.openConfirm(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "Ӧ�����Ʋ���Ϊ��", "Ӧ�����Ʋ���Ϊ��"); return; } if(this.comboAppType.getSelectionIndex()<0) { MessageDialog.openConfirm(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "Ӧ�����Ͳ���Ϊ��", "Ӧ�����Ͳ���Ϊ��"); return; } if(this.application!=null && this.application.getApplicationId().length()>0) { this.application.setApplicationName(this.txtAppName.getText()); this.application.setApplicationDesc(this.txtAppDesc.getText()); this.application.setApplicationPath(this.txtAppPath.getText()); this.application.setApplicationType((new Integer(this.comboAppType.getSelectionIndex())).toString()); this.application.setWfApplicationParam(this.appParaList); } else if(this.application == null) { this.application = new ApplicationActivity(); Date da = new Date(); long time = da.getTime(); application.setApplicationId(Long.toString(time)); this.application.setApplicationName(this.txtAppName.getText()); this.application.setApplicationDesc(this.txtAppDesc.getText()); this.application.setApplicationPath(this.txtAppPath.getText()); if(this.comboAppType.getSelectionIndex()>-1) { this.application.setApplicationType((new Integer(this.comboAppType.getSelectionIndex())).toString()); } this.application.setWfApplicationParam(this.appParaList); } // for(int i = 0;i<this.applicationListDialog.allApplicationList.size();i++) // { // if(this.txtAppName.getText().equals(((ApplicationActivity)this.applicationListDialog.allApplicationList.get(i)).getApplicationName())) // { // MessageDialog.openConfirm(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), // "Ӧ�������ظ�", // "Ӧ�������ظ�"); // return; // } // } if(!this.applicationListDialog.activityPropDialog.allApplicationList.contains(this.application)) { this.applicationListDialog.activityPropDialog.allApplicationList.add(this.application); } this.applicationListDialog.refresh(); } else if(buttonId == IDialogConstants.CANCEL_ID) { super.cancelPressed(); } super.buttonPressed(buttonId); } public void refresh() { tvAppPara.setContentProvider(new TableViewerContentProvider()); tvAppPara.setLabelProvider(new TableViewerLabelProvider()); tvAppPara.setInput(appParaList); tvAppPara.refresh(); } }