public GAGenerationTreePanel(GAObjectMonitor monitor, String parentNodeTitle) { super(); selectedChildrenPaths = new Vector(); generationNumber = 1; saveNumber = 0; generations = new DefaultMutableTreeNode(parentNodeTitle); gaMonitor = monitor; setLayout(new BorderLayout()); tree = new JTree(generations); tree.setShowsRootHandles(true); tree.setRootVisible(true); tree.putClientProperty("JTree.lineStyle", "Angled"); // Add Action Listeners MyTreeSelectionListener listener = new MyTreeSelectionListener(monitor.getSelectionInfoPanel()); MyTreeClickListener mlistener = new MyTreeClickListener(); tree.addTreeSelectionListener(listener); tree.addMouseListener(mlistener); // Add Scroll Plane scrollPane = new JScrollPane(tree); add(scrollPane, BorderLayout.CENTER); // Add Menu Bar Functionality createMenuBar(); add(menuBar, BorderLayout.NORTH); }
private static JTree createTree() { JTree resultsTree = new JTree(); resultsTree.setName("TREEVIEW"); resultsTree.setRootVisible(false); resultsTree.setEditable(false); resultsTree.setShowsRootHandles(true); resultsTree.setCellRenderer(new FailureCellRenderer()); ToolTipManager tipManager = ToolTipManager.sharedInstance(); tipManager.registerComponent(resultsTree); resultsTree.addKeyListener(new EnterPressListener()); return resultsTree; }
/** * constructor that accepts a parent container. the parent will have methods that are required to * update the interface by communicating with the OLS webservice. */ public TreeBrowser(OntologyBrowserDemo parent) { super(new GridLayout(1, 0)); this.parent = parent; tree = new JTree( new DefaultTreeModel( new DefaultMutableTreeNode(new TermNode("Load Ontology to Browse", null)))); tree.setEditable(false); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setShowsRootHandles(true); tree.addTreeSelectionListener(this); JScrollPane scrollPane = new JScrollPane(tree); add(scrollPane); }
public void installUI(JComponent c) { searchnav = (JHelpSearchNavigator) c; HelpModel helpmodel = searchnav.getModel(); searchnav.setLayout(new BorderLayout()); searchnav.addPropertyChangeListener(this); searchnav.addComponentListener(this); if (helpmodel != null) { helpmodel.addHelpModelListener(this); } JLabel search = new JLabel(HelpUtilities.getString(HelpUtilities.getLocale(c), "search.findLabel")); searchparams = new JTextField("", 20); search.setLabelFor(searchparams); searchparams.addActionListener(searchAction); JPanel box = new JPanel(); box.setLayout(new BoxLayout(box, BoxLayout.X_AXIS)); box.add(search); box.add(searchparams); searchnav.add("North", box); topNode = new DefaultMutableTreeNode(); lastTOCnode = null; tree = new JTree(topNode); // public String convertValueToText(Object val TreeSelectionModel tsm = tree.getSelectionModel(); tsm.addTreeSelectionListener(this); tree.setShowsRootHandles(false); tree.setRootVisible(false); sp = new JScrollPane(); sp.getViewport().add(tree); searchnav.add("Center", sp); reloadData(); }
private void initTree() { myTree.setRootVisible(false); myTree.setShowsRootHandles(true); SmartExpander.installOn(myTree); TreeUtil.installActions(myTree); EditSourceOnDoubleClickHandler.install(myTree); myTree.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (KeyEvent.VK_ENTER == e.getKeyCode()) { TreePath leadSelectionPath = myTree.getLeadSelectionPath(); if (leadSelectionPath == null) return; DefaultMutableTreeNode node = (DefaultMutableTreeNode) leadSelectionPath.getLastPathComponent(); if (node instanceof UsageNode) { final Usage usage = ((UsageNode) node).getUsage(); usage.navigate(false); usage.highlightInEditor(); } else if (node.isLeaf()) { Navigatable navigatable = getNavigatableForNode(node); if (navigatable != null && navigatable.canNavigate()) { navigatable.navigate(false); } } } } }); TreeUtil.selectFirstNode(myTree); PopupHandler.installPopupHandler( myTree, IdeActions.GROUP_USAGE_VIEW_POPUP, ActionPlaces.USAGE_VIEW_POPUP); // TODO: install speed search. Not in openapi though. It makes sense to create a common // TreeEnchancer service. }
protected TreeTable createOptionsTree(CodeStyleSettings settings) { DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(); Map<String, DefaultMutableTreeNode> groupsMap = new THashMap<String, DefaultMutableTreeNode>(); List<Option> sorted = sortOptions(ContainerUtil.concat(myOptions, myCustomOptions)); for (Option each : sorted) { if (!(myCustomOptions.contains(each) || myAllowedOptions.contains(each.field.getName()) || myShowAllStandardOptions)) continue; String group = each.groupName; MyTreeNode newNode = new MyTreeNode(each, each.title, settings); DefaultMutableTreeNode groupNode = groupsMap.get(group); if (groupNode != null) { groupNode.add(newNode); } else { String groupName; if (group == null) { groupName = each.title; groupNode = newNode; } else { groupName = group; groupNode = new DefaultMutableTreeNode(groupName); groupNode.add(newNode); } groupsMap.put(groupName, groupNode); rootNode.add(groupNode); } } ListTreeTableModel model = new ListTreeTableModel(rootNode, COLUMNS); TreeTable treeTable = new TreeTable(model) { @Override public TreeTableCellRenderer createTableRenderer(TreeTableModel treeTableModel) { TreeTableCellRenderer tableRenderer = super.createTableRenderer(treeTableModel); UIUtil.setLineStyleAngled(tableRenderer); tableRenderer.setRootVisible(false); tableRenderer.setShowsRootHandles(true); return tableRenderer; } @Override public TableCellRenderer getCellRenderer(int row, int column) { TreePath treePath = getTree().getPathForRow(row); if (treePath == null) return super.getCellRenderer(row, column); Object node = treePath.getLastPathComponent(); @SuppressWarnings("unchecked") TableCellRenderer renderer = COLUMNS[column].getRenderer(node); return renderer == null ? super.getCellRenderer(row, column) : renderer; } @Override public TableCellEditor getCellEditor(int row, int column) { TreePath treePath = getTree().getPathForRow(row); if (treePath == null) return super.getCellEditor(row, column); Object node = treePath.getLastPathComponent(); @SuppressWarnings("unchecked") TableCellEditor editor = COLUMNS[column].getEditor(node); return editor == null ? super.getCellEditor(row, column) : editor; } }; new TreeTableSpeedSearch(treeTable).setComparator(new SpeedSearchComparator(false)); treeTable.setRootVisible(false); final JTree tree = treeTable.getTree(); tree.setCellRenderer(myTitleRenderer); tree.setShowsRootHandles(true); // myTreeTable.setRowHeight(new JComboBox(new String[]{"Sample // Text"}).getPreferredSize().height); treeTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); treeTable.setTableHeader(null); expandTree(tree); treeTable.getColumnModel().getSelectionModel().setAnchorSelectionIndex(1); treeTable.getColumnModel().getSelectionModel().setLeadSelectionIndex(1); int maxWidth = tree.getPreferredScrollableViewportSize().width + 10; final TableColumn titleColumn = treeTable.getColumnModel().getColumn(0); titleColumn.setPreferredWidth(maxWidth); titleColumn.setMinWidth(maxWidth); titleColumn.setMaxWidth(maxWidth); titleColumn.setResizable(false); // final TableColumn levelColumn = treeTable.getColumnModel().getColumn(1); // TODO[max]: better preffered size... // TODO[kb]: Did I fixed it by making the last column floating? // levelColumn.setPreferredWidth(valueSize.width); // levelColumn.setMaxWidth(valueSize.width); // levelColumn.setMinWidth(valueSize.width); // levelColumn.setResizable(false); final Dimension valueSize = new JLabel(ApplicationBundle.message("option.table.sizing.text")).getPreferredSize(); treeTable.setPreferredScrollableViewportSize( new Dimension(maxWidth + valueSize.width + 10, 20)); return treeTable; }
public CustomizableActionsPanel() { //noinspection HardCodedStringLiteral Group rootGroup = new Group("root", null, null); final DefaultMutableTreeNode root = new DefaultMutableTreeNode(rootGroup); DefaultTreeModel model = new DefaultTreeModel(root); myActionsTree.setModel(model); myActionsTree.setRootVisible(false); myActionsTree.setShowsRootHandles(true); UIUtil.setLineStyleAngled(myActionsTree); myActionsTree.setCellRenderer(new MyTreeCellRenderer()); setButtonsDisabled(); final ActionManager actionManager = ActionManager.getInstance(); myActionsTree .getSelectionModel() .addTreeSelectionListener( new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { final TreePath[] selectionPaths = myActionsTree.getSelectionPaths(); final boolean isSingleSelection = selectionPaths != null && selectionPaths.length == 1; myAddActionButton.setEnabled(isSingleSelection); if (isSingleSelection) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPaths[0].getLastPathComponent(); String actionId = getActionId(node); if (actionId != null) { final AnAction action = actionManager.getAction(actionId); myEditIconButton.setEnabled( action != null && action.getTemplatePresentation() != null); } else { myEditIconButton.setEnabled(false); } } else { myEditIconButton.setEnabled(false); } myAddSeparatorButton.setEnabled(isSingleSelection); myRemoveActionButton.setEnabled(selectionPaths != null); if (selectionPaths != null) { for (TreePath selectionPath : selectionPaths) { if (selectionPath.getPath() != null && selectionPath.getPath().length <= 2) { setButtonsDisabled(); return; } } } myMoveActionUpButton.setEnabled(isMoveSupported(myActionsTree, -1)); myMoveActionDownButton.setEnabled(isMoveSupported(myActionsTree, 1)); myRestoreDefaultButton.setEnabled(!findActionsUnderSelection().isEmpty()); } }); myAddActionButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath selectionPath = myActionsTree.getLeadSelectionPath(); if (selectionPath != null) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath.getLastPathComponent(); final FindAvailableActionsDialog dlg = new FindAvailableActionsDialog(); dlg.show(); if (dlg.isOK()) { final Set<Object> toAdd = dlg.getTreeSelectedActionIds(); if (toAdd == null) return; for (final Object o : toAdd) { final ActionUrl url = new ActionUrl( ActionUrl.getGroupPath(new TreePath(node.getPath())), o, ActionUrl.ADDED, node.getParent().getIndex(node) + 1); addCustomizedAction(url); ActionUrl.changePathInActionsTree(myActionsTree, url); if (o instanceof String) { DefaultMutableTreeNode current = new DefaultMutableTreeNode(url.getComponent()); current.setParent((DefaultMutableTreeNode) node.getParent()); editToolbarIcon((String) o, current); } } ((DefaultTreeModel) myActionsTree.getModel()).reload(); } } TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); } }); myEditIconButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { myRestoreAllDefaultButton.setEnabled(true); final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath selectionPath = myActionsTree.getLeadSelectionPath(); if (selectionPath != null) { EditIconDialog dlg = new EditIconDialog((DefaultMutableTreeNode) selectionPath.getLastPathComponent()); dlg.show(); if (dlg.isOK()) { myActionsTree.repaint(); } } TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); } }); myAddSeparatorButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath selectionPath = myActionsTree.getLeadSelectionPath(); if (selectionPath != null) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath.getLastPathComponent(); final ActionUrl url = new ActionUrl( ActionUrl.getGroupPath(selectionPath), Separator.getInstance(), ActionUrl.ADDED, node.getParent().getIndex(node) + 1); ActionUrl.changePathInActionsTree(myActionsTree, url); addCustomizedAction(url); ((DefaultTreeModel) myActionsTree.getModel()).reload(); } TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); } }); myRemoveActionButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath[] selectionPath = myActionsTree.getSelectionPaths(); if (selectionPath != null) { for (TreePath treePath : selectionPath) { final ActionUrl url = CustomizationUtil.getActionUrl(treePath, ActionUrl.DELETED); ActionUrl.changePathInActionsTree(myActionsTree, url); addCustomizedAction(url); } ((DefaultTreeModel) myActionsTree.getModel()).reload(); } TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); } }); myMoveActionUpButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath[] selectionPath = myActionsTree.getSelectionPaths(); if (selectionPath != null) { for (TreePath treePath : selectionPath) { final ActionUrl url = CustomizationUtil.getActionUrl(treePath, ActionUrl.MOVE); final int absolutePosition = url.getAbsolutePosition(); url.setInitialPosition(absolutePosition); url.setAbsolutePosition(absolutePosition - 1); ActionUrl.changePathInActionsTree(myActionsTree, url); addCustomizedAction(url); } ((DefaultTreeModel) myActionsTree.getModel()).reload(); TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); for (TreePath path : selectionPath) { myActionsTree.addSelectionPath(path); } } } }); myMoveActionDownButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<TreePath> expandedPaths = TreeUtil.collectExpandedPaths(myActionsTree); final TreePath[] selectionPath = myActionsTree.getSelectionPaths(); if (selectionPath != null) { for (int i = selectionPath.length - 1; i >= 0; i--) { TreePath treePath = selectionPath[i]; final ActionUrl url = CustomizationUtil.getActionUrl(treePath, ActionUrl.MOVE); final int absolutePosition = url.getAbsolutePosition(); url.setInitialPosition(absolutePosition); url.setAbsolutePosition(absolutePosition + 1); ActionUrl.changePathInActionsTree(myActionsTree, url); addCustomizedAction(url); } ((DefaultTreeModel) myActionsTree.getModel()).reload(); TreeUtil.restoreExpandedPaths(myActionsTree, expandedPaths); for (TreePath path : selectionPath) { myActionsTree.addSelectionPath(path); } } } }); myRestoreAllDefaultButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { mySelectedSchema.copyFrom(new CustomActionsSchema()); patchActionsTreeCorrespondingToSchema(root); myRestoreAllDefaultButton.setEnabled(false); } }); myRestoreDefaultButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { final List<ActionUrl> otherActions = new ArrayList<ActionUrl>(mySelectedSchema.getActions()); otherActions.removeAll(findActionsUnderSelection()); mySelectedSchema.copyFrom(new CustomActionsSchema()); for (ActionUrl otherAction : otherActions) { mySelectedSchema.addAction(otherAction); } final List<TreePath> treePaths = TreeUtil.collectExpandedPaths(myActionsTree); patchActionsTreeCorrespondingToSchema(root); restorePathsAfterTreeOptimization(treePaths); myRestoreDefaultButton.setEnabled(false); } }); patchActionsTreeCorrespondingToSchema(root); myTreeExpansionMonitor = TreeExpansionMonitor.install(myActionsTree); }
public ActionsTree() { myRoot = new DefaultMutableTreeNode(ROOT); myTree = new Tree(new MyModel(myRoot)) { @Override public void paint(Graphics g) { super.paint(g); Rectangle visibleRect = getVisibleRect(); Rectangle clip = g.getClipBounds(); for (int row = 0; row < getRowCount(); row++) { Rectangle rowBounds = getRowBounds(row); rowBounds.x = 0; rowBounds.width = Integer.MAX_VALUE; if (rowBounds.intersects(clip)) { Object node = getPathForRow(row).getLastPathComponent(); if (node instanceof DefaultMutableTreeNode) { Object data = ((DefaultMutableTreeNode) node).getUserObject(); Rectangle fullRowRect = new Rectangle( visibleRect.x, rowBounds.y, visibleRect.width, rowBounds.height); paintRowData(this, data, fullRowRect, (Graphics2D) g); } } } } }; myTree.setRootVisible(false); myTree.setShowsRootHandles(true); myTree.putClientProperty(WideSelectionTreeUI.STRIPED_CLIENT_PROPERTY, Boolean.TRUE); myTree.setCellRenderer(new KeymapsRenderer()); myTree.addMouseMotionListener( new MouseMotionAdapter() { @Override public void mouseMoved(MouseEvent e) { String description = getDescription(e); if (description != null) { ActionMenu.showDescriptionInStatusBar(true, myTree, description); } else { ActionMenu.showDescriptionInStatusBar(false, myTree, null); } } @Nullable private String getDescription(@NotNull MouseEvent e) { TreePath path = myTree.getPathForLocation(e.getX(), e.getY()); if (path == null) return null; DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent(); if (node == null) return null; Object userObject = node.getUserObject(); if (!(userObject instanceof String)) return null; String actionId = (String) userObject; AnAction action = ActionManager.getInstance().getActionOrStub(actionId); if (action == null) return null; return action.getTemplatePresentation().getDescription(); } }); myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); myComponent = ScrollPaneFactory.createScrollPane( myTree, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); }
/** Constructor - creates layout. */ public HelpFrame() { setTitle("Web-Harvest Help"); setIconImage(((ImageIcon) ResourceManager.HELP32_ICON).getImage()); this.topNode = new DefaultMutableTreeNode(); this.treeModel = new DefaultTreeModel(this.topNode); try { String helpContent = CommonUtil.readStringFromUrl(ResourceManager.getHelpContentUrl()); XmlNode xmlNode = XmlParser.parse(new InputSource(new StringReader(helpContent))); createNodes(topNode, xmlNode); } catch (Exception e) { e.printStackTrace(); GuiUtils.showErrorMessage("Error reading help content!"); } tree = new JTree(topNode); tree.setRootVisible(false); tree.setShowsRootHandles(true); tree.setBorder(new EmptyBorder(5, 5, 5, 5)); tree.setCellRenderer( new DefaultTreeCellRenderer() { public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf, row, hasFocus); if (value instanceof DefaultMutableTreeNode) { DefaultMutableTreeNode defaultMutableTreeNode = (DefaultMutableTreeNode) value; Object userObject = defaultMutableTreeNode.getUserObject(); if (userObject instanceof TopicInfo) { TopicInfo topicInfo = (TopicInfo) userObject; renderer.setIcon( topicInfo.subtopicCount == 0 ? ResourceManager.HELPTOPIC_ICON : ResourceManager.HELPDIR_ICON); } } return renderer; } }); tree.addTreeSelectionListener(this); htmlPane = new JEditorPane(); htmlPane.setEditable(false); htmlPane.setContentType("text/html"); htmlPane.setEditorKit(new HTMLEditorKit()); htmlPane.setBorder(new EmptyBorder(5, 5, 5, 5)); JSplitPane splitPane = new ProportionalSplitPane(JSplitPane.HORIZONTAL_SPLIT); splitPane.setResizeWeight(0.0d); splitPane.setBorder(null); JScrollPane treeScrollPane = new WHScrollPane(tree); treeScrollPane.getViewport().setBackground(Color.white); treeScrollPane.setBackground(Color.white); splitPane.setLeftComponent(treeScrollPane); splitPane.setRightComponent(new WHScrollPane(htmlPane)); splitPane.setDividerLocation(0.3d); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(splitPane, BorderLayout.CENTER); pack(); }
private ClientWindow(String name) { setTitle("ClientWindow"); setContentPane(WindowPanel); pack(); clientFacade = ClientFacade.getClientFacadeByClientName(name); NameLabel.setText(clientFacade.getClientName()); productItemMap = clientFacade.getProductList(); FormOrderPanel.setVisible(false); tableModel = new ProductsTableModel(); ProductsTable.setModel(tableModel); root = new DefaultMutableTreeNode("ClientOrders"); generateOrdersTree(); OrdersTree.setModel(new DefaultTreeModel(root)); OrdersTree.addMouseListener( new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { TreePath pathSelected = OrdersTree.getSelectionPath(); if (OrdersTree.isPathSelected(pathSelected) && OrdersTree.getModel().isLeaf(pathSelected.getLastPathComponent())) { ManagerPopupMenu managerPopupMenu = new ManagerPopupMenu(); managerPopupMenu.getJPopupMenu().show(e.getComponent(), e.getX(), e.getY()); } } } }); OrdersTree.setShowsRootHandles(true); OrdersTree.setRootVisible(true); OrdersTree.getSelectionModel() .addTreeSelectionListener( e -> { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) OrdersTree.getLastSelectedPathComponent(); if (selectedNode.isLeaf()) { if (!((String) selectedNode.getUserObject()).equals("ClientOrders")) { List<ProductRow> productRowList = clientFacade.getProductRowsByOrder( clientFacade.getValidDate((String) selectedNode.getUserObject())); productRowList .stream() .forEach( productRow -> ClientWindow.this.tableModel.addRow( productRow.getId(), productRow.getType(), productRow.getPrice(), productRow.getNumber())); ProductsTable.revalidate(); } } }); Font font = new Font("Verdana", Font.PLAIN, 12); jMenuBar = new JMenuBar(); jMenu = new JMenu("Actions"); JMenuItem jCreateProviderOrderItem = new JMenuItem("Создать заказ"); jCreateProviderOrderItem.setFont(font); jCreateProviderOrderItem.addActionListener(e -> openClientOrderForm()); jMenu.add(jCreateProviderOrderItem); jMenu.addSeparator(); JMenuItem jCloseItem = new JMenuItem("Закрыть"); jCloseItem.setFont(font); jCloseItem.addActionListener(e -> close()); jMenu.add(jCloseItem); jMenuBar.add(jMenu); MenuPanel.add(jMenuBar); OrderOkButton.addActionListener(e -> createClientOrder()); OrderCancelButton.addActionListener(e -> closeClientOrderForm()); TypeComboBox.addItemListener(e -> setPriceByType()); AddProductButton.addActionListener( e -> { if (productItemList == null) { productItemList = new HashMap<String, ProductItem>(); } productItemList.put( TypeComboBox.getSelectedItem().toString(), new ProductItem( TypeComboBox.getSelectedItem().toString(), PriceTextField.getText(), AmountTextField.getText())); }); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); BurgerButton.addActionListener(e -> FastFoodTextArea.append(clientFacade.getBurger())); RunServerButton.addActionListener(e -> InfoTextArea.append(clientFacade.runServer())); StopServerButton.addActionListener(e -> InfoTextArea.append(clientFacade.stopServer())); }