@Override public void actionPerformed(ActionEvent e) { for (WidgetToShow widget : subPanel.getAllWidgets()) { subPanel.removeWidget(widget, (subPanel, tabToActivate) -> {}); } subPanel.closePane(); } }
@Override public void splitHorizontally() { final SubPanel subPanel = subPanelFactory.newPanel(this); subPanel.setFocusListener(focusListener); subPanel.setDoubleClickListener(doubleClickListener); subPanel.setAddTabButtonClickListener(addTabButtonClickListener); view.splitHorizontally(subPanel.getView()); }
@Override public void actionPerformed(ActionEvent e) { subPanel.splitHorizontally(); } }
@Override public void actionPerformed(ActionEvent e) { for (WidgetToShow widget : subPanel.getAllWidgets()) { subPanel.removeWidget(widget, (subPanel, tabToActivate) -> {}); } } }
.getAllWidgets() .stream() .filter(widgetToShow -> widgetToShow.getWidget().equals(widget)) focusedSubPanel.activateWidget(existedWidget.get()); return; focusedSubPanel.addWidget( widgetToShow, removable,
/** * Remove the given {@code widget} from this panel. Nearby widget will be activated if widget for * removing is active {@link Tab}. To override this behavior use {@link * #removeWidget(WidgetToShow, ActiveTabClosedHandler)} * * @param widget widget to remove */ default void removeWidget(WidgetToShow widget) { removeWidget(widget, SubPanelView::activateTab); }
@Override public void showProcessOutput(String processId) { if (!processWidgets.containsKey(processId)) { processId = ""; } onResize(); final WidgetToShow widgetToShow = processWidgets.get(processId); if (!focusedSubPanel.getAllWidgets().contains(widgetToShow)) { return; } final SubPanel subPanel = widget2Panels.get(widgetToShow); if (subPanel != null) { subPanel.activateWidget(widgetToShow); } activeProcessId = processId; final ProcessTreeNode treeNode = processTreeNodes.get(processId); if (treeNode != null && !MACHINE_NODE.equals(treeNode.getType())) { treeNode.setHasUnreadContent(false); treeNode.getTreeNodeElement().getClassList().remove(machineResources.getCss().badgeVisible()); } }
@Override public void onResize() { for (WidgetToShow widgetToShow : widget2Panels.keySet()) { final IsWidget widget = widgetToShow.getWidget(); if (widget instanceof RequiresResize) { ((RequiresResize) widget).onResize(); } } for (SubPanel panel : widget2Panels.values()) { if (panel.getView() instanceof RequiresResize) { ((RequiresResize) panel.getView()).onResize(); } } }
@Override public void removeWidget(String processId, ActiveTabClosedHandler handler) { WidgetToShow widget = processWidgets.remove(processId); SubPanel subPanel = widget2Panels.remove(widget); if (subPanel != null) { subPanel.removeWidget(widget, handler); } }
@AssistedInject public SubPanelPresenter( SubPanelFactory subPanelFactory, SubPanelViewFactory subPanelViewFactory, @Assisted @Nullable SubPanel parentPanel) { this.subPanelFactory = subPanelFactory; widgets = new ArrayList<>(); this.view = subPanelViewFactory.createView( new ClosePaneAction(this), new RemoveAllWidgetsInPaneAction(this), new SplitHorizontallyAction(this), new SplitVerticallyAction(this)); removingListeners = new HashMap<>(); view.setDelegate(this); if (parentPanel != null) { view.setParentPanel(parentPanel.getView()); } else { view.setParentPanel(null); } }
@Override public void splitVertically() { final SubPanel subPanel = subPanelFactory.newPanel(this); subPanel.setFocusListener(focusListener); subPanel.setDoubleClickListener(doubleClickListener); subPanel.setAddTabButtonClickListener(addTabButtonClickListener); view.splitVertically(subPanel.getView()); }
@Override public void clear() { for (WidgetToShow widgetToShow : processWidgets.values()) { SubPanel subPanel = widget2Panels.get(widgetToShow); subPanel.removeWidget(widgetToShow, (subPanelView, tabToActivate) -> {}); } processWidgets.clear(); }
subPanel.setFocusListener(this); subPanel.setDoubleClickListener(this); subPanel.setAddTabButtonClickListener(this); splitLayoutPanel.add(subPanel.getView()); focusedSubPanel = subPanel;