private Shell setDialogLayout(int serverId) {
    final Shell dialog = new Shell(display, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE);
    dialog.setText("Add Description");

    dialog.setLayout(UIUtil.formLayout(5, 5));

    Label iconLbl = new Label(dialog, SWT.NONE);
    iconLbl.setImage(Images.COMMENT);
    iconLbl.setLayoutData(UIUtil.formData(0, 10, 0, 10, null, -1, null, -1));

    Label descLbl = new Label(dialog, SWT.WRAP);
    descLbl.setText("Add description to " + targetLocation.getName());
    descLbl.setLayoutData(UIUtil.formData(iconLbl, 10, 0, 10, 100, -10, null, -1));

    descTxt = new Text(dialog, SWT.BORDER);
    descTxt.setLayoutData(UIUtil.formData(0, 30, descLbl, 10, 100, -30, null, -1));

    Button confirmBtn = new Button(dialog, SWT.PUSH);
    confirmBtn.setLayoutData(UIUtil.formData(null, -1, descTxt, 10, 100, -30, null, -1, 150));
    confirmBtn.setText("Confirm");
    confirmBtn.addSelectionListener(
        new SelectionListener() {
          public void widgetSelected(SelectionEvent e) {
            String description = descTxt.getText();
            if (description != null && !"".equals(description)) {
              requestDescription(description);
            }
          }

          public void widgetDefaultSelected(SelectionEvent e) {}
        });

    dialog.setDefaultButton(confirmBtn);

    return dialog;
  }
  private void createUpperMenu(Composite composite) {
    headerComp = new Composite(composite, SWT.NONE);
    headerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    headerComp.setLayout(UIUtil.formLayout(0, 0));

    long initialTime = TimeUtil.getCurrentTime(serverId) - DatePeriodUnit.A_DAY.getTime();

    applyBtn = new Button(headerComp, SWT.PUSH);
    applyBtn.setLayoutData(UIUtil.formData(null, -1, 0, 2, 100, -5, null, -1));
    applyBtn.setText("Apply");
    applyBtn.addListener(
        SWT.Selection,
        new Listener() {
          public void handleEvent(Event event) {
            switch (event.type) {
              case SWT.Selection:
                ((Button) event.widget).setEnabled(false);
                try {
                  setInput(sDate, eDate, objType, counter, serverId);
                } catch (Exception e) {
                  e.printStackTrace();
                }
                break;
            }
          }
        });

    Button manualBtn = new Button(headerComp, SWT.PUSH);
    manualBtn.setImage(Images.CTXMENU_RDC);
    manualBtn.setText("Manual");
    manualBtn.setLayoutData(UIUtil.formData(null, -1, 0, 2, applyBtn, -5, null, -1));
    manualBtn.addListener(
        SWT.Selection,
        new Listener() {
          public void handleEvent(Event event) {
            switch (event.type) {
              case SWT.Selection:
                Display display = Display.getCurrent();
                if (display == null) {
                  display = Display.getDefault();
                }

                calDialog = new LoadDualCalendarDialog(display, CounterPastLongDateTotalView.this);
                calDialog.show(UIUtil.getMousePosition());

                break;
            }
          }
        });

    periodCombo = new Combo(headerComp, SWT.VERTICAL | SWT.BORDER | SWT.READ_ONLY);
    periodCombo.setLayoutData(UIUtil.formData(null, -1, 0, 3, manualBtn, -5, null, -1));
    ArrayList<String> periodStrList = new ArrayList<String>();
    for (DatePeriodUnit minute : DatePeriodUnit.values()) {
      periodStrList.add(minute.getLabel());
    }
    periodCombo.setItems(periodStrList.toArray(new String[DatePeriodUnit.values().length]));
    periodCombo.select(2);
    periodCombo.addSelectionListener(
        new SelectionAdapter() {
          public void widgetSelected(SelectionEvent e) {
            if (((Combo) e.widget).getSelectionIndex() == 0) {
              setStartEndDate(30);
            } else if (((Combo) e.widget).getSelectionIndex() == 1) {
              setStartEndDate(7);
            } else {
              setStartEndDate(1);
            }
          }

          private void setStartEndDate(int i) {
            long yesterday = TimeUtil.getCurrentTime(serverId) - DatePeriodUnit.A_DAY.getTime();
            long startDate =
                TimeUtil.getCurrentTime(serverId) - (DatePeriodUnit.A_DAY.getTime() * i);
            sDateText.setText(DateUtil.format(startDate, "yyyy-MM-dd"));
            eDateText.setText(DateUtil.format(yesterday, "yyyy-MM-dd"));

            sDate = DateUtil.format(startDate, "yyyyMMdd");
            eDate = DateUtil.format(yesterday, "yyyyMMdd");

            stime = DateUtil.getTime(sDate, "yyyyMMdd");
            etime = DateUtil.getTime(eDate, "yyyyMMdd") + DateUtil.MILLIS_PER_DAY;
          }
        });

    eDateText = new Label(headerComp, SWT.NONE);
    eDateText.setLayoutData(UIUtil.formData(null, -1, 0, 7, periodCombo, -5, null, -1));
    eDateText.setText(DateUtil.format(initialTime - 1, "yyyy-MM-dd"));

    Label windbarLabel = new Label(headerComp, SWT.NONE);
    windbarLabel.setLayoutData(UIUtil.formData(null, -1, 0, 7, eDateText, -5, null, -1));
    windbarLabel.setText("~");

    sDateText = new Label(headerComp, SWT.NONE);
    sDateText.setLayoutData(UIUtil.formData(null, -1, 0, 7, windbarLabel, -5, null, -1));
    sDateText.setText(DateUtil.format(initialTime, "yyyy-MM-dd"));

    serverText = new Label(headerComp, SWT.NONE | SWT.RIGHT);
    serverText.setLayoutData(UIUtil.formData(0, 0, 0, 7, sDateText, -5, null, -1));
    serverText.setText("ⓢ");
  }
  public void createPartControl(Composite parent) {
    window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout gLayout = new GridLayout(1, true);
    gLayout.horizontalSpacing = 0;
    gLayout.marginHeight = 0;
    gLayout.marginWidth = 0;
    composite.setLayout(gLayout);
    createUpperMenu(composite);

    Composite chartComposite = new Composite(composite, SWT.NONE);
    chartComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
    chartComposite.setLayout(UIUtil.formLayout(0, 0));
    this.marginTargetComposite = chartComposite;
    chartComposite.setBackground(ColorUtil.getInstance().getColor(SWT.COLOR_WHITE));

    canvas = new FigureCanvas(chartComposite);
    canvas.setScrollBarVisibility(FigureCanvas.NEVER);
    canvas.setBackground(ColorUtil.getInstance().getColor(SWT.COLOR_WHITE));

    canvas.setLayoutData(UIUtil.formData(0, leftMargin, 0, 0, 100, 0, 100, 0));

    canvas.addControlListener(
        new ControlListener() {
          boolean lock = false;

          public void controlResized(ControlEvent e) {
            org.eclipse.swt.graphics.Rectangle r = canvas.getClientArea();
            if (!lock) {
              lock = true;
              if (ChartUtil.isShowDescriptionAllowSize(r.height)) {
                CounterPastLongDateTotalView.this.setContentDescription(desc);
              } else {
                CounterPastLongDateTotalView.this.setContentDescription("");
              }
              r = canvas.getClientArea();
              lock = false;
            }
            xyGraph.setSize(r.width, r.height);
          }

          public void controlMoved(ControlEvent e) {}
        });
    xyGraph = new XYGraph();
    xyGraph.setShowLegend(false);

    canvas.setContents(xyGraph);

    xyGraph.primaryXAxis.setDateEnabled(true);
    xyGraph.primaryXAxis.setShowMajorGrid(true);

    xyGraph.primaryYAxis.setAutoScale(true);
    xyGraph.primaryYAxis.setShowMajorGrid(true);

    xyGraph.primaryXAxis.setTitle("");
    xyGraph.primaryYAxis.setTitle("");

    traceDataProvider = new CircularBufferDataProvider(true);
    //		traceDataProvider.setBufferSize(buffer);
    traceDataProvider.setCurrentXDataArray(new double[] {});
    traceDataProvider.setCurrentYDataArray(new double[] {});

    // create the trace
    trace = new Trace("TOTAL", xyGraph.primaryXAxis, xyGraph.primaryYAxis, traceDataProvider);

    // set trace property
    trace.setPointStyle(PointStyle.NONE);
    trace.getXAxis().setFormatPattern("yyyy-MM-dd\n  HH:mm:ss");
    trace.getYAxis().setFormatPattern("#,##0");

    trace.setLineWidth(PManager.getInstance().getInt(PreferenceConstants.P_CHART_LINE_WIDTH));
    trace.setTraceType(TraceType.AREA);
    trace.setTraceColor(ColorUtil.getInstance().TOTAL_CHART_COLOR);

    xyGraph.primaryXAxis.setTitle("");
    xyGraph.primaryYAxis.setTitle("");

    // add the trace to xyGraph
    xyGraph.addTrace(trace);
    ChartUtil.addSolidLine(xyGraph, traceDataProvider, ColorUtil.getInstance().TOTAL_CHART_COLOR);

    ScouterUtil.addShowTotalValueListener(canvas, xyGraph);

    man = getViewSite().getActionBars().getToolBarManager();

    canvas.addKeyListener(
        new KeyListener() {
          public void keyReleased(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.F5) {
              ExUtil.asyncRun(
                  new Runnable() {
                    public void run() {
                      try {
                        setInput(sDate, eDate, objType, counter, serverId);
                      } catch (Exception e) {
                        e.printStackTrace();
                      }
                    }
                  });
            }
          }
        });

    man.add(
        new Action("Reload", ImageUtil.getImageDescriptor(Images.refresh)) {
          public void run() {
            ExUtil.exec(
                new Runnable() {
                  public void run() {
                    try {
                      setInput(sDate, eDate, objType, counter, serverId);
                    } catch (Exception e) {
                      e.printStackTrace();
                    }
                  }
                });
          }
        });

    man.add(new Separator());
    man.add(
        new Action("Duplicate", ImageUtil.getImageDescriptor(Images.copy)) {
          public void run() {
            ExUtil.exec(
                new Runnable() {
                  public void run() {
                    duplicateView();
                  }
                });
          }
        });

    restoreState();
  }
Esempio n. 4
0
  public void createPartControl(final Composite parent) {
    parent.setBackground(ColorUtil.getInstance().getColor(SWT.COLOR_WHITE));
    parent.setBackgroundMode(SWT.INHERIT_FORCE);
    parent.setLayout(UIUtil.formLayout(0, 0));
    GridLayout layout = new GridLayout(1, true);
    layout.marginHeight = MARGIN;
    layout.marginWidth = MARGIN;
    scroll = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    scroll.setLayoutData(UIUtil.formData(0, 0, 0, 0, 100, 0, 100, 0));
    canvas = new Canvas(scroll, SWT.DOUBLE_BUFFERED);
    canvas.setLayout(layout);
    canvas.addPaintListener(
        new PaintListener() {
          public void paintControl(PaintEvent e) {
            try {
              area = canvas.getClientArea();
              winYSize = parent.getSize().y;
              drawEQImage(e.gc);
            } catch (Throwable t) {
            }
          }
        });
    canvas.addMouseListener(
        new MouseAdapter() {
          public void mouseDoubleClick(MouseEvent e) {
            if (unitHeight == 0 || datas == null) {
              return;
            }
            if (e.y <= AXIS_PADDING) {
              return;
            }
            int index = (e.y - AXIS_PADDING) / unitHeight;
            if (datas.length < index + 1 || datas[index].isAlive == false) {
              return;
            }
            AgentObject agent = AgentModelThread.getInstance().getAgentObject(datas[index].objHash);
            new OpenCxtmenuActiveServiceListAction(
                    getSite().getWorkbenchWindow(),
                    MenuStr.ACTIVE_SERVICE_LIST,
                    datas[index].objHash,
                    agent.getObjType(),
                    agent.getServerId())
                .run();
          }
        });

    scroll.setContent(canvas);
    scroll.setExpandVertical(true);
    scroll.setExpandHorizontal(true);

    scroll.addListener(
        SWT.MouseWheel,
        new Listener() {
          public void handleEvent(Event event) {
            Point origin = scroll.getOrigin();
            origin.y += (event.count * -1) * 10;
            scroll.setOrigin(origin);
          }
        });

    // canvas.setToolTipText("Double click to list active services");
    thread = new RefreshThread(this, REFRESH_INTERVAL);
    thread.start();
  }