// TODO [rh] is this safe for multiple shells? private static void processActivate(final Shell shell) { HttpServletRequest request = ContextProvider.getRequest(); String widgetId = request.getParameter(JSConst.EVENT_WIDGET_ACTIVATED); if (widgetId != null) { Widget widget = WidgetUtil.find(shell, widgetId); if (widget != null) { setActiveControl(shell, widget); } } else { String activeControlId = WidgetLCAUtil.readPropertyValue(shell, "activeControl"); Widget widget = WidgetUtil.find(shell, activeControlId); if (widget != null) { setActiveControl(shell, widget); } } }
public void renderInitialization(Widget widget) throws IOException { ControlDecorator decorator = (ControlDecorator) widget; IClientObject clientObject = ClientObjectFactory.getClientObject(decorator); clientObject.create(TYPE); clientObject.set("parent", WidgetUtil.getId(decorator.getParent())); clientObject.set("style", WidgetLCAUtil.getStyles(decorator, ALLOWED_STYLES)); }
private static void preserveMenuBounds(final Shell shell) { Object adapter = shell.getAdapter(IShellAdapter.class); IShellAdapter shellAdapter = (IShellAdapter) adapter; Rectangle menuBounds = shellAdapter.getMenuBounds(); IWidgetAdapter widgetAdapter = WidgetUtil.getAdapter(shell); widgetAdapter.preserve(PROP_SHELL_MENU_BOUNDS, menuBounds); }
public void renderInitialization(Widget widget) throws IOException { ToolTip toolTip = (ToolTip) widget; IClientObject clientObject = ClientObjectFactory.getClientObject(toolTip); clientObject.create(TYPE); clientObject.set("parent", WidgetUtil.getId(toolTip.getParent())); clientObject.set("style", WidgetLCAUtil.getStyles(toolTip, ALLOWED_STYLES)); }
@Test public void testSetData_DoesNotRenderDataNotInWhiteList() { Fixture.fakePhase(PhaseId.PROCESS_ACTION); WidgetUtil.registerDataKeys("foo", "bar"); dropDown.setData("fool", "bar"); verify(remoteObject, never()).set(eq("data"), any(JsonObject.class)); }
@Test public void testSetData_RendersDataInWhiteList() { Fixture.fakePhase(PhaseId.PROCESS_ACTION); WidgetUtil.registerDataKeys("foo", "bar"); dropDown.setData("foo", "bar"); verify(remoteObject).set(eq("data"), eq(new JsonObject().add("foo", "bar"))); }
/* (intentionally non-JavaDoc'ed) * This method is declared public only to be accessible from DisplayLCA */ public static void writeActiveControl(final Shell shell) throws IOException { final Control activeControl = getActiveControl(shell); String prop = PROP_ACTIVE_CONTROL; if (WidgetLCAUtil.hasChanged(shell, prop, activeControl, null)) { // JSWriter writer = JSWriter.getWriterFor( shell ); // writer.set( "activeControl", new Object[] { activeControl } ); IWidgetSynchronizer synchronizer = WidgetSynchronizerFactory.getSynchronizerForWidget(shell); synchronizer.setWidgetProperty("activeControl", WidgetUtil.getId(activeControl)); } }
private static void processWidgetDefaultSelectedEvent(final Tree tree) { HttpServletRequest request = ContextProvider.getRequest(); String eventName = JSConst.EVENT_WIDGET_DEFAULT_SELECTED; if (WidgetLCAUtil.wasEventSent(tree, eventName)) { String itemId = request.getParameter(eventName + ".item"); Item treeItem = (Item) WidgetUtil.find(tree, itemId); int eventType = SelectionEvent.WIDGET_DEFAULT_SELECTED; SelectionEvent event = new SelectionEvent(tree, treeItem, eventType); event.stateMask = EventLCAUtil.readStateMask(JSConst.EVENT_WIDGET_SELECTED_MODIFIER); event.processEvent(); } }
public void preserveValues(final Widget widget) { ScrolledComposite composite = (ScrolledComposite) widget; ControlLCAUtil.preserveValues(composite); IWidgetAdapter adapter = WidgetUtil.getAdapter(composite); adapter.preserve(PROP_BOUNDS, composite.getBounds()); adapter.preserve(PROP_OVERFLOW, getOverflow(composite)); adapter.preserve(PROP_H_BAR_SELECTION, getBarSelection(composite.getHorizontalBar())); adapter.preserve(PROP_V_BAR_SELECTION, getBarSelection(composite.getVerticalBar())); adapter.preserve(Props.SELECTION_LISTENERS, Boolean.valueOf(hasSelectionListener(composite))); adapter.preserve(PROP_SHOW_FOCUSED_CONTROL, Boolean.valueOf(composite.getShowFocusedControl())); WidgetLCAUtil.preserveCustomVariant(composite); }
private static void processWidgetSelectedEvent(final Tree tree) { HttpServletRequest request = ContextProvider.getRequest(); String eventName = JSConst.EVENT_WIDGET_SELECTED; if (WidgetLCAUtil.wasEventSent(tree, eventName)) { Rectangle bounds = new Rectangle(0, 0, 0, 0); String itemId = request.getParameter(eventName + ".item"); Item treeItem = (Item) WidgetUtil.find(tree, itemId); String detailStr = request.getParameter(eventName + ".detail"); int detail = "check".equals(detailStr) ? SWT.CHECK : SWT.NONE; int eventType = SelectionEvent.WIDGET_SELECTED; int stateMask = EventLCAUtil.readStateMask(JSConst.EVENT_WIDGET_SELECTED_MODIFIER); SelectionEvent event = new SelectionEvent(tree, treeItem, eventType, bounds, stateMask, null, true, detail); event.processEvent(); } }
public void preserveValues(final Widget widget) { ControlLCAUtil.preserveValues((Control) widget); Shell shell = (Shell) widget; IWidgetAdapter adapter = WidgetUtil.getAdapter(shell); adapter.preserve(PROP_ACTIVE_CONTROL, getActiveControl(shell)); adapter.preserve(PROP_ACTIVE_SHELL, shell.getDisplay().getActiveShell()); adapter.preserve(PROP_TEXT, shell.getText()); adapter.preserve(PROP_IMAGE, shell.getImage()); adapter.preserve(PROP_ALPHA, new Integer(shell.getAlpha())); adapter.preserve(PROP_MODE, getMode(shell)); adapter.preserve(PROP_FULLSCREEN, Boolean.valueOf(shell.getFullScreen())); adapter.preserve(PROP_SHELL_LISTENER, Boolean.valueOf(ShellEvent.hasListener(shell))); adapter.preserve(PROP_SHELL_MENU, shell.getMenuBar()); adapter.preserve(PROP_MINIMUM_SIZE, shell.getMinimumSize()); WidgetLCAUtil.preserveCustomVariant(shell); }
public void preserveValues(final Widget widget) { Tree tree = (Tree) widget; ControlLCAUtil.preserveValues((Control) widget); IWidgetAdapter adapter = WidgetUtil.getAdapter(tree); adapter.preserve(PROP_SELECTION_LISTENERS, Boolean.valueOf(SelectionEvent.hasListener(tree))); adapter.preserve(PROP_HEADER_HEIGHT, new Integer(tree.getHeaderHeight())); adapter.preserve(PROP_HEADER_VISIBLE, Boolean.valueOf(tree.getHeaderVisible())); int[] values = tree.getColumnOrder(); Integer[] columnOrder = new Integer[values.length]; for (int i = 0; i < values.length; i++) { columnOrder[i] = new Integer(values[i]); } adapter.preserve(PROP_COLUMN_ORDER, columnOrder); adapter.preserve(PROP_SCROLL_LEFT, getScrollLeft(tree)); adapter.preserve(PROP_HAS_H_SCROLL_BAR, hasHScrollBar(tree)); adapter.preserve(PROP_HAS_V_SCROLL_BAR, hasVScrollBar(tree)); WidgetLCAUtil.preserveCustomVariant(tree); }
private static void readSelection(final Tree tree) { String value = WidgetLCAUtil.readPropertyValue(tree, "selection"); if (value != null) { String[] values = value.split(","); TreeItem[] selectedItems = new TreeItem[values.length]; boolean validItemFound = false; for (int i = 0; i < values.length; i++) { selectedItems[i] = (TreeItem) WidgetUtil.find(tree, values[i]); if (selectedItems[i] != null) { validItemFound = true; } } if (!validItemFound) { selectedItems = new TreeItem[0]; } tree.setSelection(selectedItems); } }
public void renderInitialization(final Widget widget) throws IOException { IWidgetSynchronizer synchronizer = WidgetSynchronizerFactory.getSynchronizerForWidget(widget); List styleList = new ArrayList(); int style = widget.getStyle(); if ((style & SWT.BORDER) != 0) { styleList.add("BORDER"); } if ((style & MODAL) != 0) { styleList.add("MODAL"); } if ((style & SWT.ON_TOP) != 0) { styleList.add("ON_TOP"); } if ((style & SWT.TITLE) != 0) { styleList.add("TITLE"); } if ((style & SWT.TOOL) != 0) { styleList.add("TOOL"); } if ((style & SWT.SHEET) != 0) { styleList.add("SHEET"); } if ((style & SWT.MIN) != 0) { styleList.add("MIN"); } if ((style & SWT.MAX) != 0) { styleList.add("MAX"); } if ((style & SWT.CLOSE) != 0) { styleList.add("CLOSE"); } if ((style & SWT.RESIZE) != 0) { styleList.add("RESIZE"); } String[] styles = new String[styleList.size()]; styleList.toArray(styles); Composite parent = ((Shell) widget).getParent(); if (parent instanceof Shell) { String parentId = WidgetUtil.getId(parent); synchronizer.newWidget(styles, new Object[] {parentId}); } synchronizer.newWidget(styles); // old // JSWriter writer = JSWriter.getWriterFor( widget ); // Shell shell = ( Shell )widget; // writer.newWidget( QX_TYPE ); // ControlLCAUtil.writeStyleFlags( shell ); // if( ( style & MODAL ) != 0 ) { // writer.call( "addState", new Object[] { "rwt_APPLICATION_MODAL" } ); // } // if( ( style & SWT.ON_TOP ) != 0 ) { // writer.call( "addState", new Object[] { "rwt_ON_TOP" } ); // } // if( ( style & SWT.TITLE ) != 0 ) { // writer.call( "addState", new Object[]{ "rwt_TITLE" } ); // } // if( ( style & SWT.TOOL ) != 0 ) { // writer.call( "addState", new Object[]{ "rwt_TOOL" } ); // } // if( ( style & SWT.SHEET ) != 0 ) { // writer.call( "addState", new Object[]{ "rwt_SHEET" } ); // } // writer.set( "showMinimize", ( style & SWT.MIN ) != 0 ); // writer.set( "allowMinimize", ( style & SWT.MIN ) != 0 ); // writer.set( "showMaximize", ( style & SWT.MAX ) != 0 ); // writer.set( "allowMaximize", ( style & SWT.MAX ) != 0 ); // writer.set( "showClose", ( style & SWT.CLOSE ) != 0 ); // writer.set( "allowClose", ( style & SWT.CLOSE ) != 0 ); // Boolean resizable = Boolean.valueOf( ( style & SWT.RESIZE ) != 0 ); // writer.set( "resizable", // new Object[] { resizable, resizable, resizable, resizable } ); // if( parent instanceof Shell ) { // writer.set( "parentShell", parent ); // } // writer.call( "initialize", null ); }
@Test public void testContructor_SetsReferenceWidget() { verify(remoteObject).set("parent", WidgetUtil.getId(text)); }