|
Link Here
|
| 21 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderListener; |
21 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderListener; |
| 22 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderProperty; |
22 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderProperty; |
| 23 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.wasEventSent; |
23 |
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.wasEventSent; |
|
|
24 |
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId; |
| 24 |
import static org.eclipse.swt.internal.events.EventLCAUtil.isListening; |
25 |
import static org.eclipse.swt.internal.events.EventLCAUtil.isListening; |
| 25 |
|
26 |
|
| 26 |
import java.io.IOException; |
27 |
import java.io.IOException; |
|
Link Here
|
| 34 |
import org.eclipse.swt.graphics.Rectangle; |
35 |
import org.eclipse.swt.graphics.Rectangle; |
| 35 |
import org.eclipse.swt.internal.widgets.IMenuAdapter; |
36 |
import org.eclipse.swt.internal.widgets.IMenuAdapter; |
| 36 |
import org.eclipse.swt.internal.widgets.IShellAdapter; |
37 |
import org.eclipse.swt.internal.widgets.IShellAdapter; |
|
|
38 |
import org.eclipse.swt.internal.widgets.Props; |
| 37 |
import org.eclipse.swt.widgets.Decorations; |
39 |
import org.eclipse.swt.widgets.Decorations; |
| 38 |
import org.eclipse.swt.widgets.Menu; |
40 |
import org.eclipse.swt.widgets.Menu; |
| 39 |
import org.eclipse.swt.widgets.MenuItem; |
41 |
import org.eclipse.swt.widgets.MenuItem; |
|
Link Here
|
| 47 |
"BAR", "DROP_DOWN", "POP_UP", "NO_RADIO_GROUP" |
49 |
"BAR", "DROP_DOWN", "POP_UP", "NO_RADIO_GROUP" |
| 48 |
}; |
50 |
}; |
| 49 |
|
51 |
|
| 50 |
private static final String PROP_PARENT = "parent"; |
|
|
| 51 |
private static final String PROP_ENABLED = "enabled"; |
52 |
private static final String PROP_ENABLED = "enabled"; |
| 52 |
private static final String PROP_SHOW_LISTENER = "Show"; |
53 |
private static final String PROP_SHOW_LISTENER = "Show"; |
| 53 |
private static final String PROP_HIDE_LISTENER = "Hide"; |
54 |
private static final String PROP_HIDE_LISTENER = "Hide"; |
| 54 |
private static final String METHOD_UNHIDE_ITEMS = "unhideItems"; |
55 |
private static final String METHOD_UNHIDE_ITEMS = "unhideItems"; |
| 55 |
private static final String METHOD_SHOW_MENU = "showMenu"; |
56 |
private static final String METHOD_SHOW_MENU = "showMenu"; |
|
|
57 |
|
| 58 |
private static final Rectangle DEFAULT_BOUNDS = new Rectangle( 0, 0, 0, 0 ); |
| 56 |
|
59 |
|
| 57 |
@Override |
60 |
@Override |
| 58 |
public void preserveValues( Widget widget ) { |
61 |
public void preserveValues( Widget widget ) { |
|
Link Here
|
| 62 |
preserveListener( menu, PROP_HIDE_LISTENER, hasHideListener( menu ) ); |
65 |
preserveListener( menu, PROP_HIDE_LISTENER, hasHideListener( menu ) ); |
| 63 |
WidgetLCAUtil.preserveCustomVariant( menu ); |
66 |
WidgetLCAUtil.preserveCustomVariant( menu ); |
| 64 |
WidgetLCAUtil.preserveHelpListener( menu ); |
67 |
WidgetLCAUtil.preserveHelpListener( menu ); |
| 65 |
if( isMenuBar( menu ) ) { |
|
|
| 66 |
preserveProperty( menu, PROP_PARENT, getParent( menu ) ); |
| 67 |
} |
| 68 |
} |
68 |
} |
| 69 |
|
69 |
|
| 70 |
@Override |
70 |
@Override |
|
Link Here
|
| 72 |
Menu menu = ( Menu )widget; |
72 |
Menu menu = ( Menu )widget; |
| 73 |
RemoteObject remoteObject = createRemoteObject( menu , TYPE ); |
73 |
RemoteObject remoteObject = createRemoteObject( menu , TYPE ); |
| 74 |
remoteObject.setHandler( new MenuOperationHandler( menu ) ); |
74 |
remoteObject.setHandler( new MenuOperationHandler( menu ) ); |
|
|
75 |
remoteObject.set( "parent", getId( menu.getParent() ) ); |
| 75 |
remoteObject.set( "style", createJsonArray( getStyles( menu, ALLOWED_STYLES ) ) ); |
76 |
remoteObject.set( "style", createJsonArray( getStyles( menu, ALLOWED_STYLES ) ) ); |
| 76 |
} |
77 |
} |
| 77 |
|
78 |
|
|
Link Here
|
| 83 |
renderListener( menu, PROP_HIDE_LISTENER, hasHideListener( menu ), false ); |
84 |
renderListener( menu, PROP_HIDE_LISTENER, hasHideListener( menu ), false ); |
| 84 |
WidgetLCAUtil.renderCustomVariant( menu ); |
85 |
WidgetLCAUtil.renderCustomVariant( menu ); |
| 85 |
WidgetLCAUtil.renderListenHelp( menu ); |
86 |
WidgetLCAUtil.renderListenHelp( menu ); |
| 86 |
if( isMenuBar( menu ) ) { |
|
|
| 87 |
renderProperty( menu, PROP_PARENT, getParent( menu ), null ); |
| 88 |
} |
| 89 |
renderBounds( menu ); |
87 |
renderBounds( menu ); |
| 90 |
renderShow( menu ); |
88 |
renderShow( menu ); |
| 91 |
renderUnhideItems( menu ); |
89 |
renderUnhideItems( menu ); |
|
Link Here
|
| 98 |
} |
96 |
} |
| 99 |
|
97 |
|
| 100 |
private static void renderBounds( Menu menu ) { |
98 |
private static void renderBounds( Menu menu ) { |
| 101 |
if( isMenuBar( menu ) && getParent( menu ) != null ) { |
99 |
if( isMenuBar( menu ) ) { |
| 102 |
// Bounds are preserved in ShellLCA#preserveMenuBounds |
100 |
// Bounds are preserved in ShellLCA#preserveMenuBounds |
| 103 |
WidgetLCAUtil.renderBounds( menu, getBounds( menu ) ); |
101 |
renderProperty( menu, Props.BOUNDS, getBounds( menu ), DEFAULT_BOUNDS ); |
| 104 |
} |
102 |
} |
| 105 |
} |
103 |
} |
| 106 |
|
104 |
|
|
Link Here
|
| 146 |
|
144 |
|
| 147 |
private static Rectangle getBounds( Menu menu ) { |
145 |
private static Rectangle getBounds( Menu menu ) { |
| 148 |
Rectangle result = new Rectangle( 0, 0, 0, 0 ); |
146 |
Rectangle result = new Rectangle( 0, 0, 0, 0 ); |
| 149 |
Decorations parent = getParent( menu ); |
147 |
Decorations parent = getBoundingShell( menu ); |
| 150 |
if( parent != null ) { |
148 |
if( parent != null ) { |
| 151 |
IShellAdapter shellAdapter = parent.getAdapter( IShellAdapter.class ); |
149 |
result = parent.getAdapter( IShellAdapter.class ).getMenuBounds(); |
| 152 |
result = shellAdapter.getMenuBounds(); |
|
|
| 153 |
} |
150 |
} |
| 154 |
return result; |
151 |
return result; |
| 155 |
} |
152 |
} |
| 156 |
|
153 |
|
| 157 |
private static Decorations getParent( Menu menu ) { |
154 |
private static Decorations getBoundingShell( Menu menu ) { |
| 158 |
Decorations result = null; |
155 |
Decorations result = null; |
| 159 |
if( menu.getParent().getMenuBar() == menu ) { |
156 |
if( menu.getParent().getMenuBar() == menu ) { |
| 160 |
result = menu.getParent(); |
157 |
result = menu.getParent(); |