@Inject @Optional void subscribeTopicChildrenChanged(@UIEventTopic(UIEvents.ElementContainer.TOPIC_CHILDREN) Event event) { Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT); // only interested in changes to toolbars if (!(changedObj instanceof MToolBar)) { return; } MUIElement container = modelService.getContainer((MUIElement) changedObj); // check if this is a part's toolbar if (container instanceof MPart) { MElementContainer<?> parent = ((MPart) container).getParent(); // only relayout if this part is the selected element and we // actually rendered this element if (parent instanceof MPartStack && parent.getSelectedElement() == container && parent.getRenderer() == StackRenderer.this) { Object widget = parent.getWidget(); if (widget instanceof CTabFolder) { adjustTopRight((CTabFolder) widget); } } } }
adjustTopRight((CTabFolder) widget);
@Override public void hideChild(MElementContainer<MUIElement> parentElement, MUIElement child) { super.hideChild(parentElement, child); CTabFolder tabFolder = (CTabFolder) parentElement.getWidget(); if (tabFolder == null) return; // Check if we have to reset the currently active child for the stack CTabItem tabItem = findItemForPart(child, parentElement); if (tabItem == tabFolder.getSelection()) { // If we're the only part we need to clear the top right... if (tabFolder.getItemCount() == 1) { adjustTopRight(tabFolder); } } // find the 'stale' tab for this element and dispose it if (tabItem != null && !tabItem.isDisposed()) { tabItem.setControl(null); tabItem.dispose(); } }
part.setCurSharedRef((MPlaceholder) curSel); sr.adjustTopRight(ctf);
StackRenderer stackRenderer = (StackRenderer) renderer; CTabFolder folder = (CTabFolder) parent.getWidget(); stackRenderer.adjustTopRight(folder);