コード例 #1
0
ファイル: ProcessListView.java プロジェクト: rampage/erlide
    public Object[] getElements(final Object parent) {
      final IBackend bk = getBackend();
      if (bk == null) {
        return new OtpErlangObject[] {};
      }
      bk.getEventDaemon().addHandler(handler);

      final OtpErlangList r = ErlideProclist.getProcessList(bk);
      if (r.arity() == 0) {
        return new OtpErlangObject[] {};
      }
      final OtpErlangObject[] ss = new OtpErlangObject[r.elements().length];

      for (int i = 0; i < r.elements().length; i++) {
        final OtpErlangTuple e = (OtpErlangTuple) r.elementAt(i);
        ss[i] = e;
      }

      return ss;
    }
コード例 #2
0
ファイル: ProcessListView.java プロジェクト: rampage/erlide
  /** This is a callback that will allow us to create the viewer and initialize it. */
  @Override
  public void createPartControl(final Composite parent) {
    final Composite container = new Composite(parent, SWT.NONE);
    final GridLayout thisLayout = new GridLayout(2, false);
    container.setLayout(thisLayout);
    thisLayout.marginWidth = 5;
    thisLayout.marginHeight = 5;
    thisLayout.makeColumnsEqualWidth = false;
    thisLayout.verticalSpacing = 1;

    final Label label = new Label(container, SWT.SHADOW_NONE);
    label.setText("Erlang backend node");

    backends = new ComboViewer(container, SWT.SINGLE | SWT.V_SCROLL);
    final Combo combo = backends.getCombo();
    combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    backends.getControl().setSize(new org.eclipse.swt.graphics.Point(319, 18));
    backends.setContentProvider(new BackendContentProvider());
    backends.setLabelProvider(new BackendLabelProvider());
    backends.setInput(BackendCore.getBackendManager());
    viewer = new TableViewer(container, SWT.SINGLE | SWT.V_SCROLL | SWT.FULL_SELECTION);
    final Table table = viewer.getTable();
    final GridData layoutData = new GridData(SWT.FILL, SWT.FILL, false, true, 2, 1);
    table.setLayoutData(layoutData);
    final Table t = (Table) viewer.getControl();
    final TableColumn colPid = new TableColumn(t, SWT.LEAD);
    colPid.setText("Pid/Name");
    colPid.setWidth(150);
    final TableColumn colStart = new TableColumn(t, SWT.LEAD);
    colStart.setText("Initial call");
    colStart.setWidth(300);
    final TableColumn colReds = new TableColumn(t, SWT.LEAD);
    colReds.setText("Reds");
    colReds.setWidth(80);
    final TableColumn colMsgs = new TableColumn(t, SWT.LEAD);
    colMsgs.setText("Msgs");
    colMsgs.setWidth(60);
    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    // viewer.setSorter(new NameSorter());
    viewer.setInput(getViewSite());
    viewer.addDoubleClickListener(
        new IDoubleClickListener() {
          public void doubleClick(final DoubleClickEvent event) {
            doubleClickAction.run();
          }
        });

    t.setLinesVisible(true);
    t.setHeaderVisible(true);

    // TODO this is wrong - all backends should be inited
    final IRpcCallSite ideBackend = BackendCore.getBackendManager().getIdeBackend();
    if (ideBackend != null) {
      ErlideProclist.processListInit(ideBackend);
    }
    BackendCore.getBackendManager()
        .forEachBackend(
            new IErlideBackendVisitor() {
              public void visit(final IBackend b) {
                ErlideProclist.processListInit(b);
              }
            });

    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();
  }