Uploaded image for project: 'Talend Component Kit'
  1. Talend Component Kit
  2. TCOMP-792

ActiveIf doesn't work properly for Enums

Apply templateInsert Lucidchart Diagram
    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.0.10
    • None
    • None
    • Hide

      1. create some component which contains two comboboxes

      @Option
      @Proposable("dynamicValues")
      @ActiveIf(target="option", value="OPTION1")
      private String value;
      
      @Option
      private SomeOptions option;
      
      public static enum SomeOptions {
      	OPTION1, OPTION2, OPTION3;
      }
      

      2. add this component to layout. switch value of "option" field first to "OPTION1" and then to "OPTION2"
      3. try to change the value of "option" field to any other value.

      Show
      1. create some component which contains two comboboxes @Option @Proposable( "dynamicValues" ) @ActiveIf(target= "option" , value= "OPTION1" ) private String value; @Option private SomeOptions option; public static enum SomeOptions { OPTION1, OPTION2, OPTION3; } 2. add this component to layout. switch value of "option" field first to "OPTION1" and then to "OPTION2" 3. try to change the value of "option" field to any other value.
    • All
    • Small

    Description

      If we create two combobox widgets like

      @Option
      @Proposable("dynamicValues")
      @ActiveIf(target="option", value="OPTION1")
      private String value;
      
      @Option
      private SomeOptions option;
      
      public static enum SomeOptions {
      	OPTION1, OPTION2, OPTION3;
      }
      

      ActiveIf will work only until the first time we set the "value" parameter as not shown.
      For example:
      At the beginning option field contains empty value. We switch it to "OPTION1" value. "value" parameter is shown at the layout. Then we switch value of "option" field to "OPTION2". "value" parameter is hidden. If we try to switch value of "option" field to any other value, it won't be saved, "value" parameter won't be shown when required and the next exception will be shown in Error Log view

      org.eclipse.swt.SWTException: Widget is disposed
      	at org.eclipse.swt.SWT.error(SWT.java:4441)
      	at org.eclipse.swt.SWT.error(SWT.java:4356)
      	at org.eclipse.swt.SWT.error(SWT.java:4327)
      	at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
      	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:348)
      	at org.eclipse.swt.widgets.Widget.getData(Widget.java:562)
      	at org.talend.designer.core.ui.editor.properties.controllers.ComboController.createComboCommand(ComboController.java:111)
      	at org.talend.designer.core.ui.editor.properties.controllers.ComboController.createCommand(ComboController.java:354)
      	at org.talend.designer.core.ui.editor.properties.controllers.ComboController.access$0(ComboController.java:351)
      	at org.talend.designer.core.ui.editor.properties.controllers.ComboController$2.widgetSelected(ComboController.java:329)
      	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
      	at org.eclipse.swt.custom.CCombo.listEvent(CCombo.java:1161)
      	at org.eclipse.swt.custom.CCombo$1.handleEvent(CCombo.java:115)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
      	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
      	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
      	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
      	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
      	at org.talend.rcp.intro.Application.start(Application.java:265)
      	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
      

      Attachments

        Activity

          People

            dchmyga Dmytro Chmyga (Inactive)
            dchmyga Dmytro Chmyga (Inactive)
            Dmytro Chmyga (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: