| Summary: | Convert to widget type by "as widget" causes runtime error | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Huang Ji Yong <hjiyong> |
| Component: | EDT | Assignee: | Project Inbox <edt.javascriptgen-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | greer |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
Caused by a dubious conversion defined in Widget.egl:
static function asWidget(value Widget in) returns(Widget) {@Operation{"widen"}};
We're afraid this may be necessary due to some quirk or limitation in the type infrastructure, so I'm leaving it in place and have added a no-op implementation to the JS runtime; I've flagged it with a TODO to question the need for this (non-)conversion and remove it -- and my impl. -- if appropriate.
Verified in 201110202102 |
The test case: package client; // RUI Handler import org.eclipse.edt.rui.widgets.Div; // // handler testAsWidget type RUIhandler{initialUI =[div], onConstructionFunction = start, cssFile = "css/testBugs.css", title = "testAsWidget"} // div Div{ children = [new Div {innerText = "my inner div"} ]}; div Div{ children = [new Div {innerText = "my inner div"} as Widget ]}; function start() end end The generated js for the line of as Widget is this.div.setChildren([egl.eglx.ui.rui.Widget.fromWidget(eze$Temp1,"Torg/eclipse/edt/rui/widgets/Div;")].setType("Teglx/ui/rui/Widget;")); In which, fromWidget is not defined at egl.eglx.ui.rui.Widget. The Shadow widget suffers from this defect. We can have a workaround for Shadow, so mark this defect as normal.