]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Fix a few UI bugs
authorBruno Sinou <bsinou@argeo.org>
Sat, 16 Nov 2013 16:50:51 +0000 (16:50 +0000)
committerBruno Sinou <bsinou@argeo.org>
Sat, 16 Nov 2013 16:50:51 +0000 (16:50 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@6624 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AliasListItemComposite.java
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AbstractAkbNodeEditor.java
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/EnvTemplateEditor.java

index 966c6e58b8dfa320af717fa4ce95e48407796f53..b58c642898c00f40825c7e2a9b3593f7dd5092eb 100644 (file)
@@ -28,6 +28,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.AbstractFormPart;
+import org.eclipse.ui.forms.IFormPart;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 
@@ -107,14 +108,37 @@ public class AliasListItemComposite extends Composite {
                final Link testBtn = new Link(firstLine, SWT.NONE);
                toolkit.adapt(testBtn, false, false);
                testBtn.setText("<a>Test</a>");
-               testBtn.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER,
-                               true, false));
-               
+               testBtn.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
+
                final Link editActiveConnLk = new Link(firstLine, SWT.NONE);
                toolkit.adapt(editActiveConnLk, false, false);
                // editActiveConnLk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER,
                // true, false));
-               
+
+               // Part Management
+               formPart = new AbstractFormPart() {
+                       public void refresh() {
+                               super.refresh();
+                               if (titleTxt.isDisposed())
+                                       return;
+                               // update display value
+                               AkbUiUtils.refreshFormTextWidget(titleTxt, connectorAlias,
+                                               Property.JCR_TITLE, "Name");
+                               AkbUiUtils.refreshFormTextWidget(descTxt, connectorAlias,
+                                               Property.JCR_DESCRIPTION, "Short description");
+
+                               if (isActive) {
+                                       titleTxt.setEditable(false);
+                                       descTxt.setEditable(false);
+                                       editActiveConnLk.setText("<a>Edit connector instance</a>");
+                               } else {
+                                       titleTxt.setEditable(true);
+                                       descTxt.setEditable(true);
+                                       editActiveConnLk.setText("<a>Edit default connector</a>");
+                               }
+                       }
+               };
+
                if (!isActive) {
                        final Link removeBtn = new Link(firstLine, SWT.NONE);
                        toolkit.adapt(removeBtn, false, false);
@@ -123,17 +147,34 @@ public class AliasListItemComposite extends Composite {
                                @Override
                                public void widgetSelected(SelectionEvent e) {
                                        try {
+
+                                               try {
+                                                       connectorAlias.getPath();
+                                               } catch (Exception ex) {
+                                                       // node has been removed.
+                                                       // silent
+                                                       return;
+                                               }
+
                                                // Manually check if corresponding node was really
                                                // removed
                                                Session session = connectorAlias.getSession();
                                                String absPath = connectorAlias.getPath();
+
+                                               form.removePart(formPart);
+
                                                CommandUtils.CallCommandWithOneParameter(
                                                                DeleteAkbNodes.ID,
                                                                DeleteAkbNodes.PARAM_NODE_JCR_ID, AkbJcrUtils
                                                                                .getIdentifierQuietly(connectorAlias));
 
-                                               if (!session.nodeExists(absPath))
-                                                       form.removePart(formPart);
+                                               if (session.nodeExists(absPath)) {
+                                                       form.addPart(formPart);
+                                               } else {
+                                                       for (IFormPart cpart : form.getParts())
+                                                               cpart.refresh();
+                                               }
+
                                        } catch (RepositoryException re) {
                                                throw new AkbException(
                                                                "Error while removing connector Alias ", re);
@@ -142,27 +183,6 @@ public class AliasListItemComposite extends Composite {
                        });
                }
 
-               // Part Management
-               formPart = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, connectorAlias,
-                                               Property.JCR_TITLE, "Name");
-                               AkbUiUtils.refreshFormTextWidget(descTxt, connectorAlias,
-                                               Property.JCR_DESCRIPTION, "Short description");
-
-                               if (isActive) {
-                                       titleTxt.setEditable(false);
-                                       descTxt.setEditable(false);
-                                       editActiveConnLk.setText("<a>Edit connector instance</a>");
-                               } else {
-                                       titleTxt.setEditable(true);
-                                       descTxt.setEditable(true);
-                                       editActiveConnLk.setText("<a>Edit default connector</a>");
-                               }
-                       }
-               };
                // Listeners
                AkbUiUtils.addTextModifyListener(titleTxt, connectorAlias,
                                Property.JCR_TITLE, formPart);
index d77ed1249945623c555035d5cddbf23f706e988f..92c771b5f737c638020bc384cf52efe3f31c2c3f 100644 (file)
@@ -102,7 +102,7 @@ public abstract class AbstractAkbNodeEditor extends FormEditor {
        @Override
        protected void addPages() {
                try {
-                       if (isTemplate || envNode.isNodeType(AkbTypes.AKB_ENV))
+                       if (isTemplate || akbNode.isNodeType(AkbTypes.AKB_ENV))
                                addPage(new ConnectorAliasPage(this, "mainPage", "Main"));
                        // Add AKB Type specific pages
                        addOtherPages();
index b97d1ec21ab10f5ff7bdc6f75d86569a8860bf02..d75e24cac7fb08873e7d5debc4efc89458a7c6de 100644 (file)
@@ -180,10 +180,11 @@ public class EnvTemplateEditor extends AbstractAkbNodeEditor {
                                                                                SWT.NO_FOCUS, getToolkit(),
                                                                                managedForm, getAkbNode(), aliasPath,
                                                                                getAkbService());
-                                                               currCmp.setLayoutData(new GridData(SWT.FILL,
-                                                                               SWT.TOP, true, false));
-                                                               connectorsCmps.put(currJcrId, currCmp);
                                                        }
+                                                       currCmp.setLayoutData(new GridData(SWT.FILL,
+                                                                       SWT.TOP, true, false));
+                                                       connectorsCmps.put(currJcrId, currCmp);
+
                                                }
                                        }