ref #10221: fix create new remote server entry
authorKatja Luther <k.luther@bgbm.org>
Wed, 25 Jan 2023 13:56:33 +0000 (14:56 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 25 Jan 2023 13:56:33 +0000 (14:56 +0100)
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/common/CdmRemoteServerRepository.java
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmRemoteServerWizard.java
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmRemoteServerWizardPage.java

index 58fb169f6d5e761b44c8877874f1a6280ca1b9b2..bf286c2ab38b854f4387c6a392aa4a546fea90a6 100644 (file)
@@ -52,6 +52,17 @@ public class CdmRemoteServerRepository{
                save();
                return true;
        }
+       
+       public static boolean add(CdmServerInfoConfig newRemoteServer) {
+               cdmServerMap.put(newRemoteServer.getName(), newRemoteServer);
+               return true;
+       }
+       
+       public static boolean update(CdmServerInfoConfig updatedRemoteServer, String oldName) {
+               cdmServerMap.remove(oldName);
+               cdmServerMap.put(updatedRemoteServer.getName(), updatedRemoteServer);
+               return true;
+       }
 
        public static List<CdmServerInfoConfig> getAll() {
                List<CdmServerInfoConfig> cdmServers = null;
index 1fd0f2e6e2a46fe9a0ff7d56bc46b03fb6daa00d..91cf839abde662cc2dafa6afde9473e02a8a2ca2 100644 (file)
@@ -56,6 +56,10 @@ public class CdmRemoteServerWizard extends Wizard {
                        this.mode = mode;
                        this.remoteServer = remoteServer;
                        remoteServerName = remoteServer.getName();
+               }else {
+                       this.remoteServer = new CdmServerInfoConfig();
+                       this.remoteServer.setName("new");
+                       CdmRemoteServerRepository.add(this.remoteServer);
                }
                //setForcePreviousAndNextButtons(true);
                setWindowTitle("Remote Server Dialog");
@@ -66,7 +70,7 @@ public class CdmRemoteServerWizard extends Wizard {
                if (remoteServer != null) {
                        remoteServerPage = new CdmRemoteServerWizardPage(remoteServer.getName(), remoteServer, mode);
                }else {
-                       remoteServerPage = new CdmRemoteServerWizardPage("new remote server", remoteServer, mode);
+                       remoteServerPage = new CdmRemoteServerWizardPage("New remote server", remoteServer, mode);
                }
                this.addPage(remoteServerPage);
                return;
@@ -76,7 +80,6 @@ public class CdmRemoteServerWizard extends Wizard {
        @Override
        public boolean performFinish() {
                try {
-                       CdmServerInfoConfig remoteServer;
                        CdmRemoteServerRepository.save();
                        return true;
 //            switch(mode) {
index 5bc8ac654dc78cc0ff3f49b6e30a3eac96d178ee..41354c22ff8c848414700e61f5e9feadc3bcdd60 100644 (file)
@@ -32,6 +32,7 @@ import org.eclipse.swt.widgets.Text;
 import eu.etaxonomy.cdm.database.CdmDataSource;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmRemoteServerRepository;
 import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
 
 /**
@@ -83,8 +84,12 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                this.setPageComplete(false);
 
                this.mode = mode;
-               if(mode == CdmRemoteServerWizard.Mode.CLONE) {
+               if(mode == CdmRemoteServerWizard.Mode.CLONE ) {
                        this.remoteServer = new CdmServerInfoConfig(remoteServer.getName(), remoteServer.getServer(), remoteServer.getPort(), remoteServer.getPrefix(),remoteServer.isIgnoreCdmLibVersion());
+               } else if (mode == CdmRemoteServerWizard.Mode.CREATE){
+                       this.remoteServer = new CdmServerInfoConfig("New");
+                       
+                       CdmRemoteServerRepository.add(this.remoteServer);
                } else {
                        this.remoteServer = remoteServer;
                }
@@ -121,7 +126,7 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                text_server.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                
                Label remotePortLabel = new Label(editRemoteServerComposite, SWT.NONE);
-               remotePortLabel.setText("Server:");
+               remotePortLabel.setText("Port:");
                text_port = new Text(editRemoteServerComposite, SWT.BORDER);
                text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                
@@ -133,9 +138,9 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                Label remoteCheckCdmLibVersionLabel = new Label(editRemoteServerComposite, SWT.NONE);
                remoteCheckCdmLibVersionLabel.setText("Check Cdmlib Version:");
                checkIgnoreCdmLibVersion = new Button(editRemoteServerComposite, SWT.CHECK);
-               if(getRemoteServer() == null) {
-                       editRemoteServerComposite.setVisible(false);
-               }
+//             if(getRemoteServer() == null) {
+//                     editRemoteServerComposite.setVisible(false);
+//             }
 
 
                // Create composite for buttons
@@ -169,7 +174,7 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
         */
        public void init() {
                removeListeners();
-               if(getRemoteServer() != null){
+               if(getRemoteServer() != null && getRemoteServer().getName() != null){
                        text_name.setText(getRemoteServer().getName());
                        text_server.setText(getRemoteServer().getServer());
                        text_port.setText(String.valueOf(getRemoteServer().getPort()));
@@ -249,16 +254,20 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
 
        @Override
     public void modifyText(ModifyEvent e) {
-
+               String oldName = name;
                name = text_name.getText();
                server = text_server.getText();
                port = text_port.getText();
                prefix = text_prefix.getText();
-               this.remoteServer.setName(name);
+               this.remoteServer.setName(name != null? name:null);
                this.remoteServer.setIgnoreCdmLibVersion(this.checkIgnoreCdmLibVersion.getSelection());
-               this.remoteServer.setServer(server);
-               this.remoteServer.setPrefix(prefix);
-               this.remoteServer.setPort(Integer.parseInt(port));
+               this.remoteServer.setServer(server!= null? server:null);
+               this.remoteServer.setPrefix(prefix != null?prefix:null);
+               this.remoteServer.setPort(StringUtils.isNotBlank(port)?Integer.parseInt(port):0);
+               if (oldName != name) {
+                       CdmRemoteServerRepository.update(remoteServer,oldName);
+               }
+               
                checkPageComplete();
        }