ref #10221: add handling for same names
authorKatja Luther <k.luther@bgbm.org>
Thu, 23 Mar 2023 14:12:12 +0000 (15:12 +0100)
committerKatja Luther <k.luther@bgbm.org>
Thu, 23 Mar 2023 14:13:10 +0000 (15:13 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerRepository.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/DeleteRemoteServerHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizardPage.java

index 09f0a3d9bc802483b7e60dbd68e903b57c5038e6..e37ac0f7e61adc09036d15cc335f635cdd603095 100644 (file)
@@ -53,7 +53,16 @@ public class CdmRemoteServerRepository{
                return true;
        }
        
+       public static boolean check(String remoteServerName) {
+               return cdmServerMap.containsKey(remoteServerName);
+               
+       }
+       
        public static boolean add(CdmServerInfoConfig newRemoteServer) {
+               if (cdmServerMap.containsKey(newRemoteServer)) {
+                       return false;
+               }
+               
                cdmServerMap.put(newRemoteServer.getName(), newRemoteServer);
                return true;
        }
index 96c70204bd1984862409fa34a8a52b9304a54f57..c66743e776c3612960a619457750efedd771b5b4 100644 (file)
@@ -33,6 +33,7 @@ public class DeleteRemoteServerHandler extends AbstractRemoteServerHandler {
             return false;
         }        
         CdmRemoteServerRepository.delete(container.getName());
+        
         return true;
     }
 
index 95d01f0e1d284341707922a34c216bd9bd363116..11c8a75328035550f09876209324644bbffbc9c1 100644 (file)
@@ -26,6 +26,7 @@ public class CdmRemoteServerWizard extends Wizard {
        private CdmRemoteServerWizardPage remoteServerPage;
        
        private CdmServerInfoConfig remoteServer;
+       private String oldName;
        
        public enum Mode {
                CREATE,
@@ -48,10 +49,11 @@ public class CdmRemoteServerWizard extends Wizard {
                if(remoteServer != null){
                        this.mode = mode;
                        this.remoteServer = remoteServer;
+                       this.oldName = remoteServer.getName();
                } else {
                        this.remoteServer = new CdmServerInfoConfig();
-                       this.remoteServer.setName("new");
-                       CdmRemoteServerRepository.add(this.remoteServer);
+                       this.remoteServer.setName("");
+                       //CdmRemoteServerRepository.add(this.remoteServer);
                }
                //setForcePreviousAndNextButtons(true);
                setWindowTitle("Remote Server Dialog");
@@ -60,6 +62,7 @@ public class CdmRemoteServerWizard extends Wizard {
        @Override
        public void addPages() {
                if (remoteServer != null) {
+                       
                        remoteServerPage = new CdmRemoteServerWizardPage(remoteServer.getName(), remoteServer, mode);
                }else {
                        remoteServerPage = new CdmRemoteServerWizardPage("New remote server", remoteServer, mode);
@@ -72,6 +75,22 @@ public class CdmRemoteServerWizard extends Wizard {
        @Override
        public boolean performFinish() {
                try {
+                       CdmServerInfoConfig cdmServerConf = this.remoteServerPage.getRemoteServer();
+                       if (mode.equals(Mode.CREATE) && CdmRemoteServerRepository.check(cdmServerConf.getName())) {
+                               while(CdmRemoteServerRepository.check(cdmServerConf.getName())){
+                                       cdmServerConf.setName(cdmServerConf.getName()+ 1);
+                               }
+                               
+                               boolean confirm = MessagingUtils.confirmDialog("Servername already in use", "This servername is already in use, the new remote server will be called: "+ cdmServerConf.getName()+"\n Do you want to continue?");
+                               if (!confirm) {
+                                       return false;
+                               }
+                       }
+                       if (mode.equals(Mode.CREATE) || mode.equals(Mode.CREATE)) {
+                               CdmRemoteServerRepository.add(cdmServerConf);
+                       }else {
+                               CdmRemoteServerRepository.update(cdmServerConf, this.oldName);
+                       }
                        CdmRemoteServerRepository.save();
                        return true;
         } catch (Throwable e) {
index 97e52dd67959da03db99265fbe1335aad187cbcb..ca48787533b43abc54ae2b841a6b722ec86f461d 100644 (file)
@@ -81,7 +81,7 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                        this.remoteServer = new CdmServerInfoConfig(remoteServer.getName(), remoteServer.getServer(), remoteServer.getPort(), remoteServer.getPrefix(),remoteServer.isIgnoreCdmLibVersion());
                } else if (mode == CdmRemoteServerWizard.Mode.CREATE){
                        this.remoteServer = new CdmServerInfoConfig("");
-                       CdmRemoteServerRepository.add(this.remoteServer);
+                       //CdmRemoteServerRepository.add(this.remoteServer);
                } else {
                        this.remoteServer = remoteServer;
                }
@@ -253,9 +253,9 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                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);
-               }               
+//             if (oldName != name) {
+//                     CdmRemoteServerRepository.update(remoteServer,oldName);
+//             }               
                checkPageComplete();
        }