private void mouseMove(GwtEvent<? extends EventHandler> event) {
    int[] coord = getCoordinates(event);
    int x = coord[0];
    int y = coord[1];

    if (isMouseDown) {
      // Do panning
      int dx = x - previousX;
      int dy = y - previousY;

      if (draggableNode != null) {
        WidgetStyle.setCursor(canvas, Cursor.POINTER);

        double scale = canvas.getScale();
        int scaleDeltaX = (int) (dx / scale);
        int scaleDeltaY = (int) (dy / scale);
        diagramPane.drag(draggableNode, scaleDeltaX, scaleDeltaY);
      } else {
        WidgetStyle.setCursor(canvas, Cursor.DEFAULT);
        diagramPane.translate(dx, dy);
        diagramPane.update();
      }

      previousX = x;
      previousY = y;
      isDragging = true;
    } else {
      diagramPane.hover(x, y);
    }
  }
  private PushButton createButton(final Pair<T, V> item, boolean plusButton) {
    final T value = item.getFirst();
    final V widget = item.getSecond();

    final PushButton button =
        new PushButton(new Image(plusButton ? resources.increaseIcon() : resources.decreaseIcon()));
    button.addStyleName(style.buttonStyle());
    button.addStyleName("buttonStyle_pfly_fix"); // $NON-NLS-1$

    button.addClickHandler(
        plusButton
            ? new ClickHandler() {

              @Override
              public void onClick(ClickEvent event) {
                getEntry(widget).removeLastButton();
                Pair<T, V> item = addGhostEntry();
                onAdd(item.getFirst(), item.getSecond());
              }
            }
            : new ClickHandler() {

              @Override
              public void onClick(ClickEvent event) {
                if (vetoRemoveWidget(item, value, widget)) {
                  return;
                }

                doRemoveItem(item, value, widget);
              }
            });

    return button;
  }
  private void mouseUp(GwtEvent<? extends EventHandler> event) {
    if (!isMouseDown) return;

    int[] coord = getCoordinates(event);
    int x = coord[0];
    int y = coord[1];

    isMouseDown = false;

    if (isDragging) {
      isDragging = false;
      draggableNode = null;
      WidgetStyle.setCursor(canvas, Cursor.DEFAULT);
    } else { // Do click selection
      // TODO: selection cannot work under iPad. Need to check touchEnd event.
      diagramPane.select(event, x, y);
    }
  }
 private void addStyles() {
   memValueEditor.addContentWidgetContainerStyleName(style.textBoxWidth());
   memValueEditor.addLabelStyleName(style.labelVisible());
   cpuValueEditor.addContentWidgetContainerStyleName(style.textBoxWidth());
   cpuValueEditor.addLabelStyleName(style.labelVisible());
 }
 private void updateStyles() {
   treeContainer.addStyleName(style.actionTreeContainer());
 }
 private void addStyles() {
   glusterSwiftStatusEditor.addContentWidgetStyleName(style.glusterSwiftStatus());
 }
 private void initStyles() {
   nameEditor.addContentWidgetStyleName(style.name());
   publicUseEditor.addContentWidgetStyleName(style.publicUse());
   networkQoSEditor.addContentWidgetStyleName(style.qos());
 }