ref #10287: handling wrong port information
authorKatja Luther <k.luther@bgbm.org>
Tue, 11 Apr 2023 08:00:25 +0000 (10:00 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 11 Apr 2023 08:00:25 +0000 (10:00 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizardPage.java

index ca48787533b43abc54ae2b841a6b722ec86f461d..82a633914d52bfb9c7d241c273bb41bf849e1fd9 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.view.remoteserver.wizard;
 
+import java.awt.Color;
+
 import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.WizardPage;
@@ -22,6 +24,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
@@ -204,9 +207,6 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                //TODO
                return true;
        }
-
-       
-
        
 
        /**
@@ -217,7 +217,7 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                
                complete &=StringUtils.isNotBlank(text_name.getText());
                complete &=StringUtils.isNotBlank(text_server.getText());
-               complete &=StringUtils.isNotBlank(text_port.getText());
+               complete &=this.remoteServer.getPort() != null;
                                
                this.setPageComplete(complete);
        }
@@ -243,7 +243,6 @@ 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();
@@ -252,13 +251,31 @@ public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListe
                this.remoteServer.setIgnoreCdmLibVersion(!this.checkIgnoreCdmLibVersion.getSelection());
                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);
-//             }               
+               
+               text_port.setBackground(text_prefix.getBackground());
+               Integer intPort = checkAndConvertPort();
+               if (intPort == null){
+                       text_port.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+               }
+               this.remoteServer.setPort(intPort);
                checkPageComplete();
        }
 
+       private Integer checkAndConvertPort() {
+               Integer portInt = null;
+       
+               try {
+                       portInt = StringUtils.isNotBlank(port)?Integer.parseInt(port):0;
+               }catch(NumberFormatException e) {
+                       return null;
+               }
+               if (portInt > 65535) {
+                       return null;
+               }
+               
+               return portInt;
+       }
+
        @Override
        public void widgetSelected(SelectionEvent e) {
                this.remoteServer.setIgnoreCdmLibVersion(!checkIgnoreCdmLibVersion.getSelection());