Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dsdp-tm-dev] RSE Extension Help


I think it depends on how you're persisting your data.  If you use RSE property sets to store data associated with a model node (like subsystem) then the RSE persistence manager will be able to take care of saving and loading the properties.  In that case, I'd suggest making use of properties outside of createSubSystemInternal() along these lines:
  • Make your wizard page implement the following.ISubSystemPropertiesWizardPage.  You would implement the method applyValues(ISubSystem ss) which will get called in SubSystemConfiguration.intializeSubSystem().
  • In your applyValues method use property sets to store your data associated with your subsystem

If you do this, then the property setting will only happen when the subsystem is created via the wizard.  After that (on restart), RSE should take care of loading those properties associated with your subsystem.

____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________



"Hochstein Tom-R60874" <Tom.Hochstein@xxxxxxxxxxxxx>
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx

05/06/2006 04:57 PM

Please respond to
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>

To
"Target Management developer discussions" <dsdp-tm-dev@xxxxxxxxxxx>
cc
Subject
RE: [dsdp-tm-dev] RSE Extension Help





Sheesh, I guess it was hard to pin down because the problem wasn't even occurring any more.  I'm guessing now that the troubles I was having were from not cleaning out my profile between runs.
 
So, I guess I still have the other question about the createSubSystemInternal() being called from two contexts, one when the new connection is first created and two each time thereafter that the profile is reloaded.  Does it make sense to distinguish these two cases by checking whether or not the IHost already has my data?
 
Tom


From: Hochstein Tom-R60874
Sent:
Monday, June 05, 2006 3:44 PM
To:
'Target Management developer discussions'
Subject:
RE: [dsdp-tm-dev] RSE Extension Help


Windows XP, Eclipse 3.2 RC3


From: dsdp-tm-dev-bounces@xxxxxxxxxxx [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent:
Monday, June 05, 2006 3:12 PM
To:
Target Management developer discussions
Cc:
Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject:
RE: [dsdp-tm-dev] RSE Extension Help



Hi Tom,


What platform are you doing this on?


Thanks,
____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________



"Hochstein Tom-R60874" <Tom.Hochstein@xxxxxxxxxxxxx>
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx

05/06/2006 03:25 PM

Please respond to
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>


To
"Target Management developer discussions" <dsdp-tm-dev@xxxxxxxxxxx>
cc
Subject
RE: [dsdp-tm-dev] RSE Extension Help







Hi Dave,

 

The stacks are identical.  I see now that the two createSubSystem() calls have a root higher in the call stack than I thought;  I've attached a full call stack below.  It seems that finishPressed() is getting called twice.  I'm having a hard time pinning it down further than that, but I think for now I've got something I can run with (unless of course you just happen to know what is going wrong :-)

 

Thanks for your help.

 

Tom

 

-----

 

Thread [main] (Suspended (breakpoint at line 325 in SystemNewConnectionWizard))
SystemNewConnectionWizard.performFinish() line: 325
SystemWizardDialog(WizardDialog).finishPressed() line: 680
SystemWizardDialog(WizardDialog).buttonPressed(int) line: 355
Dialog$3.widgetSelected(SelectionEvent) line: 660
TypedListener.handleEvent(Event) line: 90
EventTable.sendEvent(Event) line: 66
Button(Widget).sendEvent(Event) line: 928
Display.runDeferredEvents() line: 3348
Display.readAndDispatch() line: 2968
SystemWizardDialog(Window).runEventLoop(Shell) line: 820
SystemWizardDialog(Window).open() line: 796
SystemNewConnectionAction(SystemBaseDialogAction).run() line: 301
SystemNewConnectionAction(Action).runWithEvent(Event) line: 499
ActionContributionItem.handleWidgetSelection(Event, boolean) line: 539
ActionContributionItem.access$2(ActionContributionItem, Event, boolean) line: 488
ActionContributionItem$6.handleEvent(Event) line: 441
EventTable.sendEvent(Event) line: 66
ToolItem(Widget).sendEvent(Event) line: 928
Display.runDeferredEvents() line: 3348
Display.readAndDispatch() line: 2968
Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1914
Workbench.runUI() line: 1878
Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 419
PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 143
IDEApplication.run(Object) line: 95
PlatformActivator$1.run(Object) line: 78
EclipseAppLauncher.runApplication(Object) line: 92
EclipseAppLauncher.start(Object) line: 68
EclipseStarter.run(Object) line: 400
EclipseStarter.run(String[], Runnable) line: 177
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object[]) line: 324
Main.invokeFramework(String[], URL[]) line: 336
Main.basicRun(String[]) line: 280
Main.run(String[]) line: 977
Main.main(String[]) line: 952



From: dsdp-tm-dev-bounces@xxxxxxxxxxx [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent:
Monday, June 05, 2006 11:56 AM
To:
Target Management developer discussions
Cc:
Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject:
RE: [dsdp-tm-dev] RSE Extension Help



Hi Tom,


I'm still not sure I understand this.  The stack you show here looks normal - on finish, the wizard should call createHost() and, in turn, each subsystem configuration should have createSubSystem() called (which calls createSubSystemInternal()).   With my debugging I haven't hit a case where createSubSystemInternal() is called twice for the same thing.  Also, I haven't seen a case where SystemNewConnectionWizard.performFinish() is called twice.   Could you show me both the stacks that lead to SystemNewConnectionWizard.performFinish()?


____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________


"Hochstein Tom-R60874" <Tom.Hochstein@xxxxxxxxxxxxx>
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx

05/06/2006 11:56 AM

Please respond to
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>


To
"Target Management developer discussions" <dsdp-tm-dev@xxxxxxxxxxx>
cc
Subject
RE: [dsdp-tm-dev] RSE Extension Help









Hi Dave,


It's not AbstractSystemNewConnectionWizardPage.performFinish() that's the problem.  It's SystemNewConnectionWizard.performFinish() that calls createSubSystem().


Tom


New_configuration [Eclipse Application]
org.eclipse.core.launcher.Main at localhost:4910
Thread [main] (Suspended (breakpoint at line 138 in TapSubsystemConfiguration))
TapSubsystemConfiguration.createSubSystemInternal(IHost) line: 138
TapSubsystemConfiguration(SubSystemConfiguration).createSubSystem(IHost, boolean, ISystemNewConnectionWizardPage[]) line: 1220
SystemRegistry.createHost(String, String, String, String, String, String, int, ISystemNewConnectionWizardPage[]) line: 2176
SystemNewConnectionWizard.performFinish() line: 325
SystemWizardDialog(WizardDialog).finishPressed() line: 680
SystemWizardDialog(WizardDialog).buttonPressed(int) line: 355
Dialog$3.widgetSelected(SelectionEvent) line: 660



From: dsdp-tm-dev-bounces@xxxxxxxxxxx [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of David McKnight
Sent:
Monday, June 05, 2006 10:25 AM
To:
Target Management developer discussions
Cc:
Target Management developer discussions; dsdp-tm-dev-bounces@xxxxxxxxxxx
Subject:
Re: [dsdp-tm-dev] RSE Extension Help



Hi Tom,


I tried to recreate the scenario that you have but I wasn't able to hit that problem.  Does your implementation of AbstractSystemNewConnectionWizardPage override performFinish()?  If so, does it end up calling createSubSystem()?  I think the default impl just returns true.


____________________________________
David McKnight    
Phone:   905-413-3902 , T/L:  969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail:       D1/619/8200/TOR
____________________________________

"Hochstein Tom-R60874" <Tom.Hochstein@xxxxxxxxxxxxx>
Sent by: dsdp-tm-dev-bounces@xxxxxxxxxxx

02/06/2006 04:54 PM

Please respond to
Target Management developer discussions <dsdp-tm-dev@xxxxxxxxxxx>


To
"Target Management developer discussions" <dsdp-tm-dev@xxxxxxxxxxx>
cc
Subject
[dsdp-tm-dev] RSE Extension Help











Hi All,

I'm developing an RSE system type for JTAG debug devices.  For the properties of the debug device connection, I've appended a custom wizard page which extends the RSE AbstractSystemNewConnectionWizardPage.  This wizard page is an adapter of my SubsystemConfiguration object, which is itself an extension of the RSE ServiceSubSystemConfiguration.  When the wizard is finished, I'm trying to add my extra properties to the IHost by overriding ITapSubsystemConfiguration.createSubSystemInternal(IHost).

The problem is that when I click Finish, I receive two calls to createSubSystemInternal(), one for the default wizard page and one for my contributed page.  It seems that the SystemNewConnectionWizard.performFinish() is issued for both the main page and for my custom page.  This function calls createSubSystem(), which calls createSubSystemInternal(), and thus the two calls.

I also noticed that createSubSystemInternal() is also called at startup to load a persistent subsystem, which means that I need to understand that the function will get called in two different contexts.

For both cases I guess I could query the IHost to see if it already contains my properties, but that smells fishy, so I wonder if this is a problem with the RSE or with my usage.

Tom

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The information contained in this Email has been classified:

[x]
General Business Use
[
] Freescale Internal Use Only
[ ]
Freescale Confidential Proprietary _______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev_______________________________________________
dsdp-tm-dev mailing list
dsdp-tm-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev


Back to the top