Ejemplo n.º 1
0
  @Inject
  public ConsolesPanelViewImpl(
      org.eclipse.che.ide.Resources resources,
      MachineResources machineResources,
      PartStackUIResources partStackUIResources,
      ProcessesViewImplUiBinder uiBinder,
      ProcessTreeRenderer renderer,
      ProcessDataAdapter adapter) {
    super(partStackUIResources);

    this.machineResources = machineResources;
    this.processWidgets = new HashMap<>();
    processTreeNodes = new LinkedHashMap<>();
    splitLayoutPanel = new SplitLayoutPanel(1);

    renderer.setAddTerminalClickHandler(
        new AddTerminalClickHandler() {
          @Override
          public void onAddTerminalClick(@NotNull String machineId) {
            delegate.onAddTerminal(machineId);
          }
        });

    renderer.setPreviewSshClickHandler(
        new PreviewSshClickHandler() {
          @Override
          public void onPreviewSshClick(@NotNull String machineId) {
            delegate.onPreviewSsh(machineId);
          }
        });

    renderer.setStopProcessHandler(
        new StopProcessHandler() {
          @Override
          public void onStopProcessClick(@NotNull ProcessTreeNode node) {
            delegate.onStopCommandProcess(node);
          }

          @Override
          public void onCloseProcessOutputClick(@NotNull ProcessTreeNode node) {
            ProcessTreeNode.ProcessNodeType type = node.getType();
            switch (type) {
              case COMMAND_NODE:
                delegate.onCloseCommandOutputClick(node);
                break;
              case TERMINAL_NODE:
                delegate.onCloseTerminal(node);
                break;
            }
          }
        });

    processTree = Tree.create(resources, adapter, renderer);
    processTree.asWidget().addStyleName(this.machineResources.getCss().processTree());

    processTree.setTreeEventHandler(
        new Tree.Listener<ProcessTreeNode>() {
          @Override
          public void onNodeAction(TreeNodeElement<ProcessTreeNode> node) {}

          @Override
          public void onNodeClosed(TreeNodeElement<ProcessTreeNode> node) {}

          @Override
          public void onNodeContextMenu(
              int mouseX, int mouseY, TreeNodeElement<ProcessTreeNode> node) {}

          @Override
          public void onNodeDragStart(TreeNodeElement<ProcessTreeNode> node, MouseEvent event) {}

          @Override
          public void onNodeDragDrop(TreeNodeElement<ProcessTreeNode> node, MouseEvent event) {}

          @Override
          public void onNodeExpanded(TreeNodeElement<ProcessTreeNode> node) {}

          @Override
          public void onNodeSelected(TreeNodeElement<ProcessTreeNode> node, SignalEvent event) {
            delegate.onTreeNodeSelected(node.getData());
          }

          @Override
          public void onRootContextMenu(int mouseX, int mouseY) {}

          @Override
          public void onRootDragDrop(MouseEvent event) {}

          @Override
          public void onKeyboard(KeyboardEvent event) {}
        });

    setContentWidget(uiBinder.createAndBindUi(this));
    navigationPanel.getElement().setTabIndex(0);
    minimizeButton.ensureDebugId("consoles-minimizeButton");

    tuneSplitter();
  }