ref #10287: open edit wizard by double click
authorKatja Luther <k.luther@bgbm.org>
Fri, 31 Mar 2023 07:40:25 +0000 (09:40 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 31 Mar 2023 07:40:25 +0000 (09:40 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerViewPart.java

index 00f1fb84be88bc91668a18b708a49cc797b8b424..4ee9216196edd0deb5fe97c884b07398a98e9ee2 100644 (file)
@@ -25,10 +25,15 @@ import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.services.EMenuService;
 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
 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.layout.FillLayout;
@@ -42,6 +47,7 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
 import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
 import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerViewerComparator;
+import eu.etaxonomy.taxeditor.view.remoteserver.wizard.CdmRemoteServerWizard;
 
 /**
  * @author kluther
@@ -126,6 +132,36 @@ public class CdmRemoteServerViewPart {
         // Propagate selection from viewer
         selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
         viewer.addSelectionChangedListener(selectionChangedListener);
+        viewer.getControl().addMouseListener(new MouseListener() {
+                       
+                       @Override
+                       public void mouseUp(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDown(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDoubleClick(MouseEvent e) {
+                               StructuredSelection sel = (StructuredSelection) viewer.getSelection();
+                               if (sel.getFirstElement() instanceof CdmServerInfoConfig) {
+                                       CdmServerInfoConfig container = (CdmServerInfoConfig) sel.getFirstElement();
+                                       Wizard wizard = new CdmRemoteServerWizard(container, CdmRemoteServerWizard.Mode.EDIT);
+                                       WizardDialog dialog = new WizardDialog(null, wizard);
+                                       int result = dialog.open();
+                                       if(result == IStatus.OK){
+                                               if(viewer != null){
+                                                       viewer.update(container, null);
+                                               }
+                                       }
+                               }
+                       }
+               });
 
         //create context menu
         menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.local.popupmenu.remoteServerViewPart");
@@ -137,6 +173,7 @@ public class CdmRemoteServerViewPart {
        // This will create the columns for the table
        private void createColumns(TableViewer viewer) {
                Table table = viewer.getTable();
+
                String[] titles = {"Name", "Server",  "Port", "Prefix", "Check version"};
                int[] bounds = { 200, 200, 100, 50, 100 };
 
@@ -147,6 +184,7 @@ public class CdmRemoteServerViewPart {
                        column.getColumn().setResizable(true);
                        column.getColumn().setMoveable(true);
                        column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), i));
+                       
                        if(i == 1){
                                table.setSortColumn(column.getColumn());
                        }
@@ -218,4 +256,7 @@ public class CdmRemoteServerViewPart {
                };
                return selectionAdapter;
        }
+       
+       
+       
 }