private static void readScrollPosition(final Tree tree) { String left = WidgetLCAUtil.readPropertyValue(tree, "scrollLeft"); String top = WidgetLCAUtil.readPropertyValue(tree, "scrollTop"); if (left != null && top != null) { Object adapter = tree.getAdapter(ITreeAdapter.class); final ITreeAdapter treeAdapter = (ITreeAdapter) adapter; final int newScrollLeft = parsePosition(left); final int newScrollTop = parsePosition(top); final int oldScrollTop = treeAdapter.getScrollTop(); treeAdapter.setScrollLeft(newScrollLeft); treeAdapter.setScrollTop(newScrollTop); if (oldScrollTop != newScrollTop) { ProcessActionRunner.add( new Runnable() { public void run() { treeAdapter.checkAllData(tree); } }); } } }
public void readData(final Widget widget) { ScrolledComposite composite = (ScrolledComposite) widget; Point origin = composite.getOrigin(); String value = WidgetLCAUtil.readPropertyValue(widget, PARAM_H_BAR_SELECTION); ScrollBar hScroll = composite.getHorizontalBar(); if (value != null && hScroll != null) { origin.x = Integer.parseInt(value); processSelection(hScroll); } value = WidgetLCAUtil.readPropertyValue(widget, PARAM_V_BAR_SELECTION); ScrollBar vScroll = composite.getVerticalBar(); if (value != null && vScroll != null) { origin.y = Integer.parseInt(value); processSelection(vScroll); } composite.setOrigin(origin); ControlLCAUtil.processMouseEvents(composite); ControlLCAUtil.processKeyEvents(composite); ControlLCAUtil.processMenuDetect(composite); WidgetLCAUtil.processHelp(composite); }
// 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); } } }
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); } }