fixed broken autologin; fixed broken fallback to unencrypted connection; code refacto...
authorVictor Kirhenshtein <victor@netxms.org>
Sun, 20 Oct 2013 17:54:44 +0000 (17:54 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Sun, 20 Oct 2013 17:54:44 +0000 (17:54 +0000)
12 files changed:
.gitignore
ChangeLog
src/install/windows/netxms-minimal.iss
src/install/windows/setup.iss
src/java/netxms-client/src/main/java/org/netxms/client/NXCSession.java
src/java/netxms-eclipse/core/.classpath
src/java/netxms-eclipse/core/nxmc.product
src/java/netxms-eclipse/core/plugin.xml
src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/AuthenticationMethod.java [deleted file]
src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/LoginJob.java
src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/NXMCWorkbenchWindowAdvisor.java
src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/dialogs/LoginDialog.java

index 37cc997..bf31020 100644 (file)
@@ -237,6 +237,9 @@ src/java/build/solaris.gtk.sparc
 src/java/build/solaris.gtk.x86
 src/java/build/win32.win32.x86
 src/java/build/win32.win32.x86_64
+src/java/certificate-manager/.classpath
+src/java/certificate-manager/.project
+src/java/certificate-manager/.settings
 src/java/nebula/org.netxms.nebula.widgets.gallery.tests/.settings
 src/java/nebula/org.netxms.nebula.widgets.gallery.tests/bin
 src/java/nebula/org.netxms.nebula.widgets.gallery/.settings
index c0565c6..189c858 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
 *
 
 - Event processing policy rules can be exported and imported
+- NXSL:
+       - Implemented post-increment and post-decrement for array elements
 - Fixed issues: #226, #378
 
 
index b796896..6654b66 100644 (file)
@@ -2,7 +2,7 @@
 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
 #include "setup.iss"
-OutputBaseFilename=netxms-1.2.10-M1-minimal
+OutputBaseFilename=netxms-1.2.10-M2-minimal
 
 [Components]
 Name: "base"; Description: "Base Files"; Types: full compact custom; Flags: fixed
index 3adb42c..5923c18 100644 (file)
@@ -1,7 +1,7 @@
 [Setup]\r
 AppName=NetXMS\r
-AppVerName=NetXMS 1.2.10-M1\r
-AppVersion=1.2.10-M1\r
+AppVerName=NetXMS 1.2.10-M2\r
+AppVersion=1.2.10-M2\r
 AppPublisher=Raden Solutions\r
 AppPublisherURL=http://www.radensolutions.com\r
 AppSupportURL=http://www.netxms.org\r
index 1605c70..5c05443 100644 (file)
@@ -203,11 +203,7 @@ public class NXCSession
     */\r
    public NXCSession(String connAddress, int connPort, String connLoginName)\r
    {\r
-      this.connAddress = connAddress;\r
-      this.connPort = connPort;\r
-      this.connLoginName = connLoginName;\r
-\r
-      this.connUseEncryption = true;\r
+      this(connAddress, DEFAULT_CONN_PORT, connLoginName, "", false);\r
    }\r
 \r
    /**\r
@@ -217,9 +213,7 @@ public class NXCSession
     */\r
    public NXCSession(String connAddress, String connLoginName, String connPassword)\r
    {\r
-      this(connAddress, DEFAULT_CONN_PORT, connLoginName);\r
-      this.connPassword = connPassword;\r
-      //this.connUseEncryption = false;\r
+      this(connAddress, DEFAULT_CONN_PORT, connLoginName, connPassword, false);\r
    }\r
 \r
    /**\r
@@ -230,9 +224,7 @@ public class NXCSession
     */\r
    public NXCSession(String connAddress, int connPort, String connLoginName, String connPassword)\r
    {\r
-      this(connAddress, connPort, connLoginName);\r
-      this.connPassword = connPassword;\r
-      //this.connUseEncryption = false;\r
+      this(connAddress, connPort, connLoginName, connPassword, false);\r
    }\r
 \r
    /**\r
@@ -242,10 +234,11 @@ public class NXCSession
     * @param connPassword\r
     * @param connUseEncryption\r
     */\r
-   public NXCSession(\r
-      String connAddress, int connPort, String connLoginName, String connPassword, boolean connUseEncryption)\r
+   public NXCSession(String connAddress, int connPort, String connLoginName, String connPassword, boolean connUseEncryption)\r
    {\r
-      this(connAddress, connPort, connLoginName);\r
+      this.connAddress = connAddress;\r
+      this.connPort = connPort;\r
+      this.connLoginName = connLoginName;\r
       this.connPassword = connPassword;\r
       this.connUseEncryption = connUseEncryption;\r
    }\r
index d82c50c..889e55f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-       <classpathentry exported="true" kind="lib" path="jar/certificate-manager-1.2.10.jar"/>
+       <classpathentry exported="true" kind="lib" path="jar/certificate-manager-1.2.10.jar" sourcepath="/certificate-manager"/>
        <classpathentry exported="true" kind="lib" path="jar/netxms-base-1.2.10.jar" sourcepath="/netxms-base"/>
        <classpathentry exported="true" kind="lib" path="jar/netxms-client-1.2.10.jar" sourcepath="/netxms-client"/>
        <classpathentry exported="true" kind="lib" path="jar/netxms-client-api-1.2.10.jar"/>
index 5d9528f..f1a5b14 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="NetXMS Management Console" id="org.netxms.ui.eclipse.console.product" application="org.netxms.ui.eclipse.console.application" version="1.2.9" useFeatures="false" includeLaunchers="true">
-
-   <aboutInfo>
-      <image path="/Core/icons/launcher/128x128.png"/>
-      <text>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?pde version="3.5"?>\r
+\r
+<product name="NetXMS Management Console" id="org.netxms.ui.eclipse.console.product" application="org.netxms.ui.eclipse.console.application" version="1.2.9" useFeatures="false" includeLaunchers="true">\r
+\r
+   <aboutInfo>\r
+      <image path="/Core/icons/launcher/128x128.png"/>\r
+      <text>\r
          NetXMS Management Console
 
 Version 1.2.9
-Copyright (c) 2003-2013 Victor Kirhenshtein, Alex Kirhenshtein
-      </text>
-   </aboutInfo>
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-data @user.home/.nxmc/data -nl en</programArgs>
-      <vmArgs>-Xms128m -Xmx1024m</vmArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="/Core/icons/launcher/16x16.png" i32="/Core/icons/launcher/32x32.png" i48="/Core/icons/launcher/48x48.png" i64="/Core/icons/launcher/64x64.png" i128="/Core/icons/launcher/128x128.png"/>
-
-   <splash
-      startupProgressRect="500,284,455,10"
-      startupMessageRect="7,275,441,18"
-      startupForegroundColor="410B73" />
-   <launcher name="nxmc">
-      <macosx icon="/Core/icons/launcher/nxmc.icns"/>
-      <solaris/>
-      <win useIco="true">
-         <ico path="/Core/icons/launcher/nxmc.ico"/>
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <license>
-        <url>http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</url>
-   </license>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.apache.commons.codec"/>
-      <plugin id="org.eclipse.birt.chart.device.extension"/>
-      <plugin id="org.eclipse.birt.chart.device.swt"/>
-      <plugin id="org.eclipse.birt.chart.engine"/>
-      <plugin id="org.eclipse.birt.chart.engine.extension"/>
-      <plugin id="org.eclipse.birt.core"/>
-      <plugin id="org.eclipse.compare.core"/>
-      <plugin id="org.eclipse.compare.core.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.compare.core.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.compare.core.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.compare.core.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.compare.core.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.commands.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.commands.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.commands.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.commands.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.commands.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.contenttype.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.contenttype.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.contenttype.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.contenttype.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.contenttype.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.databinding.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.observable"/>
-      <plugin id="org.eclipse.core.databinding.observable.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.observable.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.observable.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.observable.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.observable.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.property"/>
-      <plugin id="org.eclipse.core.databinding.property.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.property.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.property.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.property.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.databinding.property.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.expressions.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.expressions.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.expressions.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.expressions.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.expressions.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.jobs.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.core.variables"/>
-      <plugin id="org.eclipse.core.variables.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.core.variables.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.core.variables.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.core.variables.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.core.variables.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.draw2d"/>
-      <plugin id="org.eclipse.emf.common"/>
-      <plugin id="org.eclipse.emf.common.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.emf.common.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.emf.common.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.emf.common.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.emf.common.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.ecore.xmi.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.xmi.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.xmi.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.xmi.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.emf.ecore.xmi.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.app.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.common.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.equinox.common.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.equinox.common.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.equinox.common.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.equinox.common.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.preferences.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.equinox.preferences.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.equinox.preferences.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.equinox.preferences.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.equinox.preferences.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.registry.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.help.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.help.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.help.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.help.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.help.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <plugin id="org.eclipse.jface.databinding.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.jface.databinding.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.jface.databinding.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.jface.databinding.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.jface.databinding.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.jface.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.jface.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.jface.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.jface.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.jface.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.jface.text"/>
-      <plugin id="org.eclipse.jface.text.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.jface.text.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.jface.text.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.jface.text.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.jface.text.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.osgi.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.osgi.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.osgi.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.osgi.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
-      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.aix.ppc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.aix.ppc64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.hpux.ia64_32" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.swt.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.swt.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.swt.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.swt.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.text"/>
-      <plugin id="org.eclipse.text.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.text.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.text.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.text.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.text.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.tm.terminal"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.carbon" fragment="true"/>
-      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
-      <plugin id="org.eclipse.ui.console"/>
-      <plugin id="org.eclipse.ui.console.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.console.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.console.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.console.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.console.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.ui.forms"/>
-      <plugin id="org.eclipse.ui.forms.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.forms.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.forms.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.forms.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.forms.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.ui.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.ui.win32.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.win32.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.win32.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.win32.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.win32.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-      <plugin id="org.eclipse.ui.workbench.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor.nl_de" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor.nl_es" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor.nl_ru" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor.nl_zh" fragment="true"/>
-      <plugin id="org.eclipse.ui.workbench.texteditor.nl_zh_TW" fragment="true"/>
-      <plugin id="org.eclipse.zest.core"/>
-      <plugin id="org.eclipse.zest.jface"/>
-      <plugin id="org.eclipse.zest.layouts"/>
-      <plugin id="org.mozilla.javascript"/>
-      <plugin id="org.netxms.certificatemanager"/>
-      <plugin id="org.netxms.nebula.widgets.gallery"/>
-      <plugin id="org.netxms.ui.eclipse.actionmanager"/>
-      <plugin id="org.netxms.ui.eclipse.agentmanager"/>
-      <plugin id="org.netxms.ui.eclipse.alarmviewer"/>
-      <plugin id="org.netxms.ui.eclipse.charts"/>
-      <plugin id="org.netxms.ui.eclipse.console"/>
-      <plugin id="org.netxms.ui.eclipse.dashboard"/>
-      <plugin id="org.netxms.ui.eclipse.datacollection"/>
-      <plugin id="org.netxms.ui.eclipse.epp"/>
-      <plugin id="org.netxms.ui.eclipse.eventmanager"/>
-      <plugin id="org.netxms.ui.eclipse.filemanager"/>
-      <plugin id="org.netxms.ui.eclipse.imagelibrary"/>
-      <plugin id="org.netxms.ui.eclipse.logviewer"/>
-      <plugin id="org.netxms.ui.eclipse.networkmaps"/>
-      <plugin id="org.netxms.ui.eclipse.nxsl"/>
-      <plugin id="org.netxms.ui.eclipse.objectbrowser"/>
-      <plugin id="org.netxms.ui.eclipse.objectbrowser.adapterfactory" fragment="true"/>
-      <plugin id="org.netxms.ui.eclipse.objectmanager"/>
-      <plugin id="org.netxms.ui.eclipse.objecttools"/>
-      <plugin id="org.netxms.ui.eclipse.objectview"/>
-      <plugin id="org.netxms.ui.eclipse.osm"/>
-      <plugin id="org.netxms.ui.eclipse.perfview"/>
-      <plugin id="org.netxms.ui.eclipse.policymanager"/>
-      <plugin id="org.netxms.ui.eclipse.reporter"/>
-      <plugin id="org.netxms.ui.eclipse.serverconfig"/>
-      <plugin id="org.netxms.ui.eclipse.serverjobmanager"/>
-      <plugin id="org.netxms.ui.eclipse.serviceview"/>
-      <plugin id="org.netxms.ui.eclipse.slm"/>
-      <plugin id="org.netxms.ui.eclipse.snmp"/>
-      <plugin id="org.netxms.ui.eclipse.switchmanager"/>
-      <plugin id="org.netxms.ui.eclipse.topology"/>
-      <plugin id="org.netxms.ui.eclipse.usermanager"/>
-      <plugin id="org.swtchart"/>
-   </plugins>
-
-
-</product>
+Copyright (c) 2003-2013 Victor Kirhenshtein, Alex Kirhenshtein\r
+      </text>\r
+   </aboutInfo>\r
+\r
+   <configIni use="default">\r
+   </configIni>\r
+\r
+   <launcherArgs>\r
+      <programArgs>-data @user.home/.nxmc/data -nl en</programArgs>\r
+      <vmArgs>-Xms128m -Xmx1024m</vmArgs>\r
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>\r
+   </launcherArgs>\r
+\r
+   <windowImages i16="/Core/icons/launcher/16x16.png" i32="/Core/icons/launcher/32x32.png" i48="/Core/icons/launcher/48x48.png" i64="/Core/icons/launcher/64x64.png" i128="/Core/icons/launcher/128x128.png"/>\r
+\r
+   <splash\r
+      startupMessageRect="7,275,441,18"\r
+      startupForegroundColor="410B73" />\r
+   <launcher name="nxmc">\r
+      <macosx icon="/Core/icons/launcher/nxmc.icns"/>\r
+      <solaris/>\r
+      <win useIco="true">\r
+         <ico path="/Core/icons/launcher/nxmc.ico"/>\r
+         <bmp/>\r
+      </win>\r
+   </launcher>\r
+\r
+\r
+   <vm>\r
+   </vm>\r
+\r
+   <license>\r
+        <url>http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</url>\r
+   </license>\r
+\r
+   <plugins>\r
+      <plugin id="com.ibm.icu"/>\r
+      <plugin id="org.apache.commons.codec"/>\r
+      <plugin id="org.eclipse.birt.chart.device.extension"/>\r
+      <plugin id="org.eclipse.birt.chart.device.swt"/>\r
+      <plugin id="org.eclipse.birt.chart.engine"/>\r
+      <plugin id="org.eclipse.birt.chart.engine.extension"/>\r
+      <plugin id="org.eclipse.birt.core"/>\r
+      <plugin id="org.eclipse.compare.core"/>\r
+      <plugin id="org.eclipse.compare.core.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.compare.core.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.compare.core.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.compare.core.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.compare.core.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.commands"/>\r
+      <plugin id="org.eclipse.core.commands.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.commands.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.commands.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.commands.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.commands.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.contenttype"/>\r
+      <plugin id="org.eclipse.core.contenttype.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.contenttype.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.contenttype.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.contenttype.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.contenttype.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding"/>\r
+      <plugin id="org.eclipse.core.databinding.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.observable"/>\r
+      <plugin id="org.eclipse.core.databinding.observable.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.observable.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.observable.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.observable.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.observable.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.property"/>\r
+      <plugin id="org.eclipse.core.databinding.property.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.property.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.property.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.property.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.databinding.property.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.expressions"/>\r
+      <plugin id="org.eclipse.core.expressions.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.expressions.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.expressions.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.expressions.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.expressions.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem"/>\r
+      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.jobs"/>\r
+      <plugin id="org.eclipse.core.jobs.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.jobs.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.jobs.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.jobs.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.jobs.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources"/>\r
+      <plugin id="org.eclipse.core.resources.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.core.runtime"/>\r
+      <plugin id="org.eclipse.core.runtime.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.runtime.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.runtime.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.runtime.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.runtime.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.core.variables"/>\r
+      <plugin id="org.eclipse.core.variables.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.core.variables.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.core.variables.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.core.variables.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.core.variables.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.draw2d"/>\r
+      <plugin id="org.eclipse.emf.common"/>\r
+      <plugin id="org.eclipse.emf.common.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.common.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.common.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.common.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.common.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore"/>\r
+      <plugin id="org.eclipse.emf.ecore.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.emf.ecore.xmi.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.app"/>\r
+      <plugin id="org.eclipse.equinox.app.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.app.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.app.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.app.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.app.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.common"/>\r
+      <plugin id="org.eclipse.equinox.common.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.common.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.common.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.common.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.common.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.preferences"/>\r
+      <plugin id="org.eclipse.equinox.preferences.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.preferences.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.preferences.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.preferences.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.preferences.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.registry"/>\r
+      <plugin id="org.eclipse.equinox.registry.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.registry.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.registry.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.registry.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.equinox.registry.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.help"/>\r
+      <plugin id="org.eclipse.help.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.help.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.help.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.help.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.help.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.jface"/>\r
+      <plugin id="org.eclipse.jface.databinding"/>\r
+      <plugin id="org.eclipse.jface.databinding.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.databinding.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.databinding.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.databinding.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.databinding.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.text"/>\r
+      <plugin id="org.eclipse.jface.text.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.text.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.text.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.text.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.jface.text.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.osgi"/>\r
+      <plugin id="org.eclipse.osgi.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.osgi.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.osgi.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.osgi.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.osgi.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.swt"/>\r
+      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.aix.ppc" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.aix.ppc64" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64_32" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.text"/>\r
+      <plugin id="org.eclipse.text.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.text.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.text.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.text.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.text.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.tm.terminal"/>\r
+      <plugin id="org.eclipse.ui"/>\r
+      <plugin id="org.eclipse.ui.carbon" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.console"/>\r
+      <plugin id="org.eclipse.ui.console.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.console.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.console.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.console.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.console.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.forms"/>\r
+      <plugin id="org.eclipse.ui.forms.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.forms.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.forms.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.forms.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.forms.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.win32.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.win32.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.win32.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.win32.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.win32.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench"/>\r
+      <plugin id="org.eclipse.ui.workbench.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_de" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_es" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_ru" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_zh" fragment="true"/>\r
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_zh_TW" fragment="true"/>\r
+      <plugin id="org.eclipse.zest.core"/>\r
+      <plugin id="org.eclipse.zest.jface"/>\r
+      <plugin id="org.eclipse.zest.layouts"/>\r
+      <plugin id="org.mozilla.javascript"/>\r
+      <plugin id="org.netxms.certificatemanager" fragment=""/>\r
+      <plugin id="org.netxms.nebula.widgets.gallery"/>\r
+      <plugin id="org.netxms.ui.eclipse.actionmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.agentmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.alarmviewer"/>\r
+      <plugin id="org.netxms.ui.eclipse.charts"/>\r
+      <plugin id="org.netxms.ui.eclipse.console"/>\r
+      <plugin id="org.netxms.ui.eclipse.dashboard"/>\r
+      <plugin id="org.netxms.ui.eclipse.datacollection"/>\r
+      <plugin id="org.netxms.ui.eclipse.epp"/>\r
+      <plugin id="org.netxms.ui.eclipse.eventmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.filemanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.imagelibrary"/>\r
+      <plugin id="org.netxms.ui.eclipse.logviewer"/>\r
+      <plugin id="org.netxms.ui.eclipse.networkmaps"/>\r
+      <plugin id="org.netxms.ui.eclipse.nxsl"/>\r
+      <plugin id="org.netxms.ui.eclipse.objectbrowser"/>\r
+      <plugin id="org.netxms.ui.eclipse.objectbrowser.adapterfactory" fragment="true"/>\r
+      <plugin id="org.netxms.ui.eclipse.objectmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.objecttools"/>\r
+      <plugin id="org.netxms.ui.eclipse.objectview"/>\r
+      <plugin id="org.netxms.ui.eclipse.osm"/>\r
+      <plugin id="org.netxms.ui.eclipse.perfview"/>\r
+      <plugin id="org.netxms.ui.eclipse.policymanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.reporter"/>\r
+      <plugin id="org.netxms.ui.eclipse.serverconfig"/>\r
+      <plugin id="org.netxms.ui.eclipse.serverjobmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.serviceview"/>\r
+      <plugin id="org.netxms.ui.eclipse.slm"/>\r
+      <plugin id="org.netxms.ui.eclipse.snmp"/>\r
+      <plugin id="org.netxms.ui.eclipse.switchmanager"/>\r
+      <plugin id="org.netxms.ui.eclipse.topology"/>\r
+      <plugin id="org.netxms.ui.eclipse.usermanager"/>\r
+      <plugin id="org.swtchart"/>\r
+   </plugins>\r
+\r
+\r
+</product>\r
index b33ad24..5696a74 100644 (file)
          point="org.eclipse.core.runtime.products">\r
       <product\r
             application="org.netxms.ui.eclipse.console.application"\r
-            name="NetXMS Management Console for Cortex">\r
+            name="NetXMS Management Console">\r
          <property\r
                name="appName"\r
-               value="NetXMS Management Console for Cortex">\r
+               value="NetXMS Management Console">\r
          </property>\r
          <property\r
                name="aboutText"\r
-               value="NetXMS Cortex Management Console&#x0A;&#x0A;Copyright (c) 2003-2011 Raden Solutions">\r
+               value="NetXMS Management Console&#x0A;&#x0A;Version 1.2.9&#x0A;Copyright (c) 2003-2013 Victor Kirhenshtein, Alex Kirhenshtein">\r
          </property>\r
          <property\r
                name="startupForegroundColor"\r
-               value="FFFF00">\r
+               value="410B73">\r
          </property>\r
          <property\r
                name="startupMessageRect"\r
-               value="7,265,386,20">\r
+               value="7,275,441,18">\r
          </property>\r
          <property\r
                name="preferenceCustomization"\r
                value="plugin_customization.ini">\r
          </property>\r
          <property\r
-               name="startupProgressRect"\r
-               value="0,285,400,15">\r
+               name="aboutImage"\r
+               value="icons/launcher/128x128.png">\r
+         </property>\r
+         <property\r
+               name="windowImages"\r
+               value="icons/launcher/16x16.png,icons/launcher/32x32.png,icons/launcher/48x48.png,icons/launcher/64x64.png,icons/launcher/128x128.png">\r
          </property>\r
       </product>\r
    </extension>\r
diff --git a/src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/AuthenticationMethod.java b/src/java/netxms-eclipse/core/src/org/netxms/ui/eclipse/console/AuthenticationMethod.java
deleted file mode 100644 (file)
index 38a3d36..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * NetXMS - open source network management system
- * Copyright (C) 2003-2013 Raden Solutions
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.netxms.ui.eclipse.console;
-
-/**
- * Enumeration to identify the authentication method used in login job
- */
-public enum AuthenticationMethod
-{
-   AUTHENTICATION_NULL,
-   AUTHENTICATION_PASSWORD,
-   AUTHENTICATION_CERTIFICATE
-}
index 64345e1..3c9bcf1 100644 (file)
@@ -33,7 +33,6 @@ import org.netxms.client.NXCSession;
 import org.netxms.ui.eclipse.console.api.ConsoleLoginListener;\r
 import org.netxms.ui.eclipse.console.api.SessionProvider;\r
 import org.netxms.ui.eclipse.shared.ConsoleSharedData;\r
-import static org.netxms.ui.eclipse.console.AuthenticationMethod.*;\r
 \r
 /**\r
  * Login job\r
@@ -62,7 +61,7 @@ public class LoginJob implements IRunnableWithProgress
    private String server;\r
    private String loginName;\r
    private boolean encryptSession;\r
-   private AuthenticationMethod authMethod;\r
+   private int authMethod;\r
    private String password;\r
    private Signature signature;\r
 \r
@@ -78,7 +77,7 @@ public class LoginJob implements IRunnableWithProgress
       this.server = server;\r
       this.loginName = loginName;\r
       this.encryptSession = encryptSession;\r
-      authMethod = AUTHENTICATION_NULL;\r
+      authMethod = NXCSession.AUTH_TYPE_PASSWORD;\r
    }\r
 \r
    /*\r
@@ -217,21 +216,17 @@ public class LoginJob implements IRunnableWithProgress
     */\r
    private NXCSession createNXCSession(String hostName, int port)\r
    {\r
-      NXCSession session = new NXCSession(hostName, port, loginName);\r
-\r
+      NXCSession session = new NXCSession(hostName, port, loginName, password, encryptSession);\r
+      session.setAuthType(authMethod);\r
       switch(authMethod)\r
       {\r
-         case AUTHENTICATION_PASSWORD:\r
-            session.setPassword(password);\r
-            break;\r
-\r
-         case AUTHENTICATION_CERTIFICATE:\r
-            session.setSignature(signature);\r
-            break;\r
-         \r
-         case AUTHENTICATION_NULL:\r
+       case NXCSession.AUTH_TYPE_PASSWORD:\r
+             session.setPassword(password);\r
+             break;\r
+       case NXCSession.AUTH_TYPE_CERTIFICATE:\r
+             session.setSignature(signature);\r
+             break;\r
       }\r
-\r
       return session;\r
    }\r
 \r
@@ -260,16 +255,6 @@ public class LoginJob implements IRunnableWithProgress
       }\r
    }\r
 \r
-   /**\r
-    * Set the authentication method for this login job\r
-    * \r
-    * @param method authentication method to use\r
-    */\r
-   private void setAuthenticationMethod(AuthenticationMethod method)\r
-   {\r
-      authMethod = method;\r
-   }\r
-\r
    /**\r
     * Set password for this login job\r
     * \r
@@ -278,7 +263,7 @@ public class LoginJob implements IRunnableWithProgress
    public void setPassword(String password)\r
    {\r
       this.password = password;\r
-      setAuthenticationMethod(AUTHENTICATION_PASSWORD);\r
+      authMethod = NXCSession.AUTH_TYPE_PASSWORD;\r
    }\r
 \r
    /**\r
@@ -289,6 +274,6 @@ public class LoginJob implements IRunnableWithProgress
    public void setSignature(Signature signature)\r
    {\r
       this.signature = signature;\r
-      setAuthenticationMethod(AUTHENTICATION_CERTIFICATE);\r
+      authMethod = NXCSession.AUTH_TYPE_CERTIFICATE;\r
    }\r
 }\r
index ec8f78e..443ae06 100644 (file)
@@ -44,6 +44,7 @@ import org.netxms.certificate.manager.CertificateManagerProvider;
 import org.netxms.certificate.manager.exception.SignatureImpossibleException;
 import org.netxms.certificate.request.KeyStoreEntryPasswordRequestListener;
 import org.netxms.client.NXCException;
+import org.netxms.client.NXCSession;
 import org.netxms.client.constants.RCC;
 import org.netxms.ui.eclipse.console.dialogs.LoginDialog;
 import org.netxms.ui.eclipse.console.dialogs.PasswordExpiredDialog;
@@ -128,7 +129,7 @@ public class NXMCWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implement
       IDialogSettings settings = Activator.getDefault().getDialogSettings();
       boolean success = false;
       boolean autoConnect = false;
-      String password;
+      String password = "";
 
       CertificateManager certMgr = CertificateManagerProvider.provideCertificateManager();
       certMgr.setKeyStoreRequestListener(this);
@@ -147,6 +148,7 @@ public class NXMCWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implement
          else if (s.startsWith("-password=")) //$NON-NLS-1$
          {
             password = s.substring(10);
+            settings.put("Connect.AuthMethod", NXCSession.AUTH_TYPE_PASSWORD);
          }
          else if (s.equals("-auto")) //$NON-NLS-1$
          {
@@ -162,28 +164,35 @@ public class NXMCWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implement
          if (!autoConnect)
          {
             showLoginDialog(loginDialog);
+            password = loginDialog.getPassword();
          }
          else
          {
             autoConnect = false; // only do auto connect first time
          }
 
-         LoginJob job = new LoginJob(display, settings.get("Connect.Server"), //$NON-NLS-1$ 
+         LoginJob job = new LoginJob(display, 
+                       settings.get("Connect.Server"), //$NON-NLS-1$ 
                settings.get("Connect.Login"), //$NON-NLS-1$
-               encrypt); //$NON-NLS-1$
+               encrypt);
 
-         switch(loginDialog.getAuthenticationMethod())
+         int authMethod;
+         try
+         {
+               authMethod = settings.getInt("Connect.AuthMethod"); //$NON-NLS-1$
+         }
+         catch(NumberFormatException e)
+         {
+               authMethod = NXCSession.AUTH_TYPE_PASSWORD;
+         }
+         switch(authMethod)
          {
-            case AUTHENTICATION_PASSWORD:
-               job.setPassword(loginDialog.getPassword());
+            case NXCSession.AUTH_TYPE_PASSWORD:
+               job.setPassword(password);
                break;
-
-            case AUTHENTICATION_CERTIFICATE:
-               Signature sign = getSignature(certMgr, loginDialog);
-               job.setSignature(sign);
+            case NXCSession.AUTH_TYPE_CERTIFICATE:
+               job.setSignature(getSignature(certMgr, loginDialog.getCertificate()));
                break;
-
-            case AUTHENTICATION_NULL:
          }
 
          try
@@ -223,29 +232,22 @@ public class NXMCWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor implement
       }
 
       CertificateManagerProvider.dispose();
-      // if (!success)
-      // return;
-
-      // TODO: refactor to not require this
-      password = loginDialog.getPassword();
 
       // Suggest user to change password if it is expired
-      final Session session = ConsoleSharedData.getSession();
-      if (session.isPasswordExpired())
+      final NXCSession session = (NXCSession)ConsoleSharedData.getSession();
+      if ((session.getAuthType() == NXCSession.AUTH_TYPE_PASSWORD) && session.isPasswordExpired())
       {
-         requestPasswordChange(password, session);
+         requestPasswordChange(loginDialog.getPassword(), session);
       }
    }
 
    /**
     * @param certMgr
-    * @param loginDialog
+    * @param cert
     * @return
-    * @throws SignatureImpossibleException
     */
-   private Signature getSignature(CertificateManager certMgr, LoginDialog loginDialog)
+   private static Signature getSignature(CertificateManager certMgr, Certificate cert)
    {
-      Certificate cert = loginDialog.getCertificate();
       Signature sign;
 
       try
index baf9eb2..4397a1e 100644 (file)
@@ -30,54 +30,51 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;\r
 import org.eclipse.swt.events.DisposeEvent;\r
 import org.eclipse.swt.events.DisposeListener;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.events.SelectionListener;\r
 import org.eclipse.swt.graphics.Color;\r
 import org.eclipse.swt.graphics.RGB;\r
 import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.layout.RowLayout;\r
-import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Combo;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Event;\r
 import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Listener;\r
 import org.eclipse.swt.widgets.Monitor;\r
 import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.swt.widgets.Text;\r
 import org.eclipse.ui.forms.widgets.Form;\r
 import org.eclipse.ui.forms.widgets.FormToolkit;\r
 import org.netxms.certificate.loader.exception.KeyStoreLoaderException;\r
 import org.netxms.certificate.manager.CertificateManager;\r
 import org.netxms.certificate.subject.Subject;\r
 import org.netxms.certificate.subject.SubjectParser;\r
+import org.netxms.client.NXCSession;\r
 import org.netxms.ui.eclipse.console.Activator;\r
-import org.netxms.ui.eclipse.console.AuthenticationMethod;\r
 import org.netxms.ui.eclipse.console.BrandingManager;\r
 import org.netxms.ui.eclipse.console.Messages;\r
+import org.netxms.ui.eclipse.tools.MessageDialogHelper;\r
 import org.netxms.ui.eclipse.tools.WidgetHelper;\r
 import org.netxms.ui.eclipse.widgets.LabeledText;\r
-import static org.netxms.ui.eclipse.console.AuthenticationMethod.*;\r
 \r
 /**\r
  * Login dialog\r
  */\r
-public class LoginDialog extends Dialog implements SelectionListener\r
+public class LoginDialog extends Dialog\r
 {\r
    private FormToolkit toolkit;\r
    private ImageDescriptor loginImage;\r
    private Combo comboServer;\r
    private LabeledText textLogin;\r
-   private Text textPassword;\r
+   private LabeledText textPassword;\r
+   private Composite authEntryFields;\r
+   private Combo comboAuth;\r
    private Combo comboCert;\r
    private String password;\r
-   private Certificate cert;\r
+   private Certificate certificate;\r
    private Color labelColor;\r
    private final CertificateManager certMgr;\r
-   private AuthenticationMethod authenticationMethod;\r
+   private int authMethod; \r
 \r
    /**\r
     * @param parentShell\r
@@ -91,7 +88,6 @@ public class LoginDialog extends Dialog implements SelectionListener
          loginImage = Activator.getImageDescriptor("icons/login.png"); //$NON-NLS-1$\r
 \r
       this.certMgr = certMgr;\r
-      authenticationMethod = AuthenticationMethod.AUTHENTICATION_NULL;\r
    }\r
 \r
    /*\r
@@ -166,7 +162,7 @@ public class LoginDialog extends Dialog implements SelectionListener
       gd.grabExcessVerticalSpace = true;\r
       label.setLayoutData(gd);\r
 \r
-      Composite fields = toolkit.createComposite(dialogArea.getBody());\r
+      final Composite fields = toolkit.createComposite(dialogArea.getBody());\r
       fields.setBackgroundMode(SWT.INHERIT_DEFAULT);\r
       GridLayout fieldsLayout = new GridLayout();\r
       fieldsLayout.verticalSpacing = WidgetHelper.DIALOG_SPACING;\r
@@ -193,15 +189,37 @@ public class LoginDialog extends Dialog implements SelectionListener
       gd.widthHint = WidgetHelper.getTextWidth(textLogin, "M") * 24;\r
       textLogin.setLayoutData(gd);\r
 \r
-      // textPassword = new LabeledText(fields, SWT.NONE, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD, toolkit);\r
-      // textPassword.setLabel(Messages.LoginDialog_password);\r
-      // gd = new GridData();\r
-      // gd.horizontalAlignment = SWT.FILL;\r
-      // gd.grabExcessHorizontalSpace = true;\r
-      // textPassword.setLayoutData(gd);\r
-\r
-      attachAuthenticationFields(settings, fields);\r
-\r
+      gd = new GridData();\r
+      gd.horizontalAlignment = SWT.FILL;\r
+      gd.grabExcessHorizontalSpace = true;\r
+      comboAuth = WidgetHelper.createLabeledCombo(fields, SWT.DROP_DOWN | SWT.READ_ONLY, "Authentication", gd, toolkit);\r
+      comboAuth.add("Password");\r
+      comboAuth.add("Certificate");\r
+      comboAuth.select(authMethod);\r
+      comboAuth.addSelectionListener(new SelectionAdapter() {\r
+                       @Override\r
+                       public void widgetSelected(SelectionEvent e)\r
+                       {\r
+                               selectAuthenticationField(true);\r
+                       }\r
+               });\r
+      \r
+      authEntryFields = toolkit.createComposite(fields);\r
+      authEntryFields.setLayout(new StackLayout());\r
+      authEntryFields.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+\r
+      textPassword = new LabeledText(authEntryFields, SWT.NONE, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD, toolkit);\r
+      textPassword.setLabel(Messages.LoginDialog_password);\r
+      \r
+      comboCert = WidgetHelper.createLabeledCombo(authEntryFields, SWT.DROP_DOWN | SWT.READ_ONLY, "Certificate", null, toolkit);\r
+      comboCert.addSelectionListener(new SelectionAdapter() {\r
+                       @Override\r
+                       public void widgetSelected(SelectionEvent e)\r
+                       {\r
+                               selectCertificate();\r
+                       }\r
+               });\r
+      \r
       // Read field data\r
       String[] items = settings.getArray("Connect.ServerHistory"); //$NON-NLS-1$\r
       if (items != null)\r
@@ -214,153 +232,61 @@ public class LoginDialog extends Dialog implements SelectionListener
       if (text != null)\r
          textLogin.setText(text);\r
 \r
+      try\r
+      {\r
+       authMethod = settings.getInt("Connect.AuthMethod"); //$NON-NLS-1$\r
+      }\r
+      catch(NumberFormatException e)\r
+      {\r
+       authMethod = NXCSession.AUTH_TYPE_PASSWORD;\r
+      }\r
+      selectAuthenticationField(false);\r
+            \r
       // Set initial focus\r
       if (comboServer.getText().isEmpty())\r
+      {\r
          comboServer.setFocus();\r
+      }\r
       else if (textLogin.getText().isEmpty())\r
+      {\r
          textLogin.setFocus();\r
+      }\r
       else\r
-         textPassword.setFocus();\r
+      {\r
+       if (authMethod == NXCSession.AUTH_TYPE_PASSWORD)\r
+               textPassword.setFocus();\r
+       else if (authMethod == NXCSession.AUTH_TYPE_CERTIFICATE)\r
+               comboCert.setFocus();\r
+      }\r
 \r
       return dialogArea;\r
    }\r
-\r
-   private void attachAuthenticationFields(final IDialogSettings settings, final Composite fields)\r
-   {\r
-      // Display display = Display.getCurrent();\r
-      //\r
-      // final Composite authComposite = new Composite(group, SWT.NONE);\r
-      // authComposite.setBackground(display.getSystemColor(SWT.COLOR_WHITE));\r
-      // final GridLayout authCompositeLayout = new GridLayout(1, true);\r
-      // authComposite.setLayout(authCompositeLayout);\r
-      // authComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      // final Composite radios = new Composite(authComposite, SWT.NONE);\r
-      final Composite radios = new Composite(fields, SWT.NONE);\r
-      final RowLayout radiosLayout = new RowLayout(SWT.HORIZONTAL);\r
-      radiosLayout.justify = true;\r
-      radiosLayout.pack = false;\r
-\r
-      radios.setLayout(radiosLayout);\r
-      radios.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      toolkit.adapt(radios);\r
-\r
-      final Button passwdButton = new Button(radios, SWT.RADIO);\r
-      passwdButton.setText(Messages.LoginDialog_password);\r
-      passwdButton.setSelection(true);\r
-\r
-      final Button certButton = new Button(radios, SWT.RADIO);\r
-      certButton.setText("Certificate");\r
-      certButton.addSelectionListener(this);\r
-      // certButton.setEnabled(false);\r
-\r
-      attachAuthMethodComposite(fields, passwdButton, certButton);\r
-   }\r
-\r
-   private void attachAuthMethodComposite(final Composite fields, final Button passwdButton, final Button certButton)\r
-   {\r
-      final Composite authMethod = new Composite(fields, SWT.NONE);\r
-      final StackLayout authMethodLayout = new StackLayout();\r
-\r
-      authMethod.setLayout(authMethodLayout);\r
-      authMethod.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      toolkit.adapt(authMethod);\r
-\r
-      final Composite passwdField = attachPasswdField(authMethod);\r
-      final Composite certField = attachCertField(authMethod);\r
-\r
-      authMethodLayout.topControl = passwdButton.getSelection() ? passwdField : certField;\r
-\r
-      final Listener radioButtonListener = new Listener() {\r
-         @Override\r
-         public void handleEvent(Event event)\r
-         {\r
-            StackLayout layout = (StackLayout)authMethod.getLayout();\r
-\r
-            if (passwdButton.getSelection())\r
-            {\r
-               layout.topControl = passwdField;\r
-               authenticationMethod = AUTHENTICATION_PASSWORD;\r
-            }\r
-            else\r
-            {\r
-               layout.topControl = certField;\r
-               authenticationMethod = AUTHENTICATION_CERTIFICATE;\r
-            }\r
-            authMethod.layout();\r
-         }\r
-      };\r
-\r
-      passwdButton.addListener(SWT.Selection, radioButtonListener);\r
-      certButton.addListener(SWT.Selection, radioButtonListener);\r
-   }\r
-\r
-   private Composite attachPasswdField(final Composite authMethod)\r
-   {\r
-      final Composite passwdField = new Composite(authMethod, SWT.NONE);\r
-\r
-      final GridLayout layout = new GridLayout();\r
-      layout.verticalSpacing = GridData.CENTER;\r
-      layout.horizontalSpacing = 0;\r
-      layout.marginTop = 0;\r
-      layout.marginBottom = 0;\r
-      layout.marginWidth = 0;\r
-      layout.marginHeight = 0;\r
-\r
-      passwdField.setLayout(layout);\r
-      passwdField.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      final Label label = new Label(passwdField, SWT.NONE);\r
-      label.setText(Messages.LoginDialog_password); //$NON-NLS-1$\r
-      textPassword = new Text(passwdField, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD);\r
-      // textPassword = new LabeledText(passwdField, SWT.SINGLE | SWT.PASSWORD | SWT.BORDER);\r
-      textPassword.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-      // textPassword = new LabeledText(authMethod, SWT.NONE, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD, toolkit);\r
-      // textPassword.setLabel(Messages.LoginDialog_password);\r
-      // textPassword.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      // gd = new GridData();\r
-      // gd.horizontalAlignment = SWT.FILL;\r
-      // gd.grabExcessHorizontalSpace = true;\r
-      // textPassword.setLayoutData(gd);\r
-\r
-      toolkit.adapt(passwdField);\r
-\r
-      return passwdField;\r
-   }\r
-\r
-   private Composite attachCertField(final Composite authMethod)\r
+   \r
+   /**\r
+    * Select authentication information entry filed depending on selected authentication method.\r
+    * \r
+    * @param doLayout\r
+    */\r
+   private void selectAuthenticationField(boolean doLayout)\r
    {\r
-      final Composite certField = new Composite(authMethod, SWT.NONE);\r
-\r
-      final GridLayout layout = new GridLayout();\r
-      layout.verticalSpacing = GridData.CENTER;\r
-      layout.horizontalSpacing = 0;\r
-      layout.marginTop = 0;\r
-      layout.marginBottom = 0;\r
-      layout.marginWidth = 0;\r
-      layout.marginHeight = 0;\r
-\r
-      certField.setLayout(layout);\r
-      certField.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-\r
-      final Label label = new Label(certField, SWT.NONE);\r
-      label.setText("Certificate");\r
-\r
-      comboCert = new Combo(certField, SWT.DROP_DOWN | SWT.READ_ONLY);\r
-      comboCert.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));\r
-      comboCert.addSelectionListener(this);\r
-\r
-      // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);\r
-      // final Combo comboCert = WidgetHelper.createLabeledCombo(authMethod, (SWT.DROP_DOWN | SWT.READ_ONLY), "Certificate", gd,\r
-      // toolkit);\r
-      // comboCert.setItems(new String[] { "A", "B", "C" });\r
-\r
-      toolkit.adapt(certField);\r
-\r
-      return certField;\r
+       authMethod = comboAuth.getSelectionIndex();\r
+       switch(authMethod)\r
+       {\r
+               case NXCSession.AUTH_TYPE_PASSWORD:\r
+             ((StackLayout)authEntryFields.getLayout()).topControl = textPassword;\r
+             break;\r
+               case NXCSession.AUTH_TYPE_CERTIFICATE:\r
+                       fillCertCombo();\r
+             ((StackLayout)authEntryFields.getLayout()).topControl = comboCert.getParent();\r
+             break;\r
+          default:\r
+             ((StackLayout)authEntryFields.getLayout()).topControl = null;     // hide entry control\r
+             break;\r
+       }\r
+      if (doLayout)\r
+      {\r
+       authEntryFields.layout();\r
+      }\r
    }\r
 \r
    /*\r
@@ -371,6 +297,12 @@ public class LoginDialog extends Dialog implements SelectionListener
    @Override\r
    protected void okPressed()\r
    {\r
+       if ((authMethod == NXCSession.AUTH_TYPE_CERTIFICATE) && (comboCert.getSelectionIndex() == -1))\r
+       {\r
+               MessageDialogHelper.openWarning(getShell(), "Warning", "No certificate selected. Please select certificate from the list or choose different authentication method.");\r
+               return;\r
+       }\r
+       \r
       IDialogSettings settings = Activator.getDefault().getDialogSettings();\r
 \r
       HashSet<String> items = new HashSet<String>();\r
@@ -380,12 +312,9 @@ public class LoginDialog extends Dialog implements SelectionListener
       settings.put("Connect.Server", comboServer.getText()); //$NON-NLS-1$\r
       settings.put("Connect.ServerHistory", items.toArray(new String[items.size()])); //$NON-NLS-1$\r
       settings.put("Connect.Login", textLogin.getText()); //$NON-NLS-1$\r
+      settings.put("Connect.AuthMethod", authMethod); //$NON-NLS-1$\r
 \r
-      if (authenticationMethod == AUTHENTICATION_PASSWORD)\r
-      {\r
-         password = textPassword.getText();\r
-      }\r
-\r
+      password = textPassword.getText();\r
       super.okPressed();\r
    }\r
 \r
@@ -397,38 +326,23 @@ public class LoginDialog extends Dialog implements SelectionListener
       return password;\r
    }\r
 \r
-   @Override\r
-   public void widgetSelected(SelectionEvent e)\r
-   {\r
-      Object source = e.getSource();\r
-      // System.out.println(source);\r
-      if (source.toString().equals("Button {Certificate}"))\r
-      {\r
-         Button certButton = (Button)source;\r
-\r
-         if (!certButton.getSelection())\r
-            return;\r
-\r
-         if (!fillCertCombo())\r
-            certButton.setSelection(false);\r
-      }\r
-      else if (source.toString().startsWith("Combo {"))\r
-      {\r
-         selectCert();\r
-      }\r
-\r
-   }\r
-\r
-   private void selectCert()\r
+   /**\r
+    * Select certificate\r
+    */\r
+   private void selectCertificate()\r
    {\r
-      int index = comboCert.getSelectionIndex() - 1;\r
+      int index = comboCert.getSelectionIndex();\r
       if (index >= 0)\r
       {\r
-         cert = certMgr.getCerts()[index];\r
-         authenticationMethod = AuthenticationMethod.AUTHENTICATION_CERTIFICATE;\r
+         certificate = certMgr.getCerts()[index];\r
       }\r
    }\r
 \r
+   /**\r
+    * Fill certificate list\r
+    * \r
+    * @return\r
+    */\r
    private boolean fillCertCombo()\r
    {\r
       if (comboCert.getItemCount() != 0)\r
@@ -444,7 +358,7 @@ public class LoginDialog extends Dialog implements SelectionListener
       catch(KeyStoreLoaderException ksle)\r
       {\r
          Shell shell = Display.getCurrent().getActiveShell();\r
-         MessageDialog.openError(shell, "Whoops!", "The password you provided appears to be wrong.");\r
+         MessageDialog.openError(shell, "Error", "The key store password you provided appears to be wrong.");\r
          return false;\r
       }\r
 \r
@@ -465,28 +379,20 @@ public class LoginDialog extends Dialog implements SelectionListener
       if (subjectStrings.length != 0)\r
       {\r
          comboCert.setItems(subjectStrings);\r
-         comboCert.add("+", 0);\r
          comboCert.select(0);\r
-\r
          return true;\r
       }\r
 \r
       return false;\r
    }\r
 \r
-   @Override\r
-   public void widgetDefaultSelected(SelectionEvent e)\r
-   {\r
-      // Don't do anything\r
-   }\r
-\r
-   public AuthenticationMethod getAuthenticationMethod()\r
-   {\r
-      return authenticationMethod;\r
-   }\r
-\r
+   /**\r
+    * Get selected certificate\r
+    * \r
+    * @return\r
+    */\r
    public Certificate getCertificate()\r
    {\r
-      return cert;\r
+      return certificate;\r
    }\r
 }\r