public void mouseReleased(MouseEvent e) {

      updateOverTab(e.getX(), e.getY());

      if (overTabIndex == -1) {
        if (e.isPopupTrigger()) ((CloseAndMaxTabbedPane) tabPane).firePopupOutsideTabEvent(e);
        return;
      }

      if (isOneActionButtonEnabled() && e.isPopupTrigger()) {
        super.mousePressed(e);

        closeIndexStatus = INACTIVE; // Prevent undesired action when
        maxIndexStatus = INACTIVE; // right-clicking on icons

        actionPopupMenu.show(tabScroller.tabPanel, e.getX(), e.getY());
        return;
      }

      if (closeIndexStatus == PRESSED) {
        closeIndexStatus = OVER;
        tabScroller.tabPanel.repaint();
        ((CloseAndMaxTabbedPane) tabPane).fireCloseTabEvent(e, overTabIndex);
        return;
      }

      if (maxIndexStatus == PRESSED) {
        maxIndexStatus = OVER;
        tabScroller.tabPanel.repaint();
        ((CloseAndMaxTabbedPane) tabPane).fireMaxTabEvent(e, overTabIndex);
        return;
      }
    }
  private void configMemberField() {

    // 設定主畫面 Layout
    getContentPane().setLayout(new BorderLayout());

    makeMenu();
    makePopupMenu();
    makeTabbedPane();
    makeLanguageMenu();

    // 更新畫面上的文字
    updateText();

    // 顯示此元件
    setVisible(true);

    // 設定事件控制器的目標主題
    actionController.setView(this);
    actionController.setModel(model);
    changeController.setView(this);
    changeController.setModel(model);
    keyEventController.setView(this);
    keyEventController.setModel(model);
    componentController.setView(this);
    componentController.setModel(model);
    mouseController.setView(this);
    mouseController.setModel(model);

    // 設定系統核心的目標介面
    model.setView(this);

    // 接收視窗大小改變的事件
    addComponentListener(componentController);

    // 攔截鍵盤 event 以處理快速鍵
    KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keyEventController);

    // 在程式啟動時就先讀一次字型,讓使用者開第一個連線視窗時不會感覺太慢。
    cacheFont();

    // 自動連線
    model.autoconnect();
  }
Beispiel #3
0
  /**
   * @see MouseHandler#mouseMoved(org.academiadecodigo.simplegraphics.mouse.MouseEvent)
   * @param e the event
   */
  @Override
  public void mouseMoved(MouseEvent e) {

    if (handler == null) {
      return;
    }

    Iterator<MouseEventType> iterator = mouseEventArrayList.iterator();
    while (iterator.hasNext()) {
      MouseEventType et = iterator.next();
      if (et == MouseEventType.MOUSE_MOVED) {
        handler.mouseMoved(
            new org.academiadecodigo.simplegraphics.mouse.MouseEvent(
                e.getX(), e.getY(), MouseEventType.MOUSE_MOVED));
      }
    }
  }
Beispiel #4
0
  private void viewerResized() {
    width = getSize().x;
    height = getSize().y;
    logger.debug("Tamaño del viewer: " + width + "x" + height);

    if (svgImage != null && !svgImage.isDisposed()) svgImage.dispose();

    if (offscreenImage != null && !offscreenImage.isDisposed()) {
      offscreenImage.dispose();
    }
    offscreenImage = new Image(getDisplay(), width, height);

    // Crea el raster SVG
    TinyPixbuf buffer = new TinyPixbuf(width, height);
    raster = new SVGRaster(buffer);
    imageProducer = new ImageProducer(raster);
    imageProducer.setConsumer(this);
    raster.setSVGImageProducer(imageProducer);

    // Antialiasing
    raster.setAntialiased(antialiased);

    // Poner fondo transparente
    raster.setBackground(0x00FFFFFF);

    // Avisar al manejador de eventos de que el tamaño ha cambiado
    if (mouseHandler != null) {
      mouseHandler.viewerResized();
    }

    // Cargar el documento pendiente, si existe
    if (pendingSVG != null) {
      loadSVGUrl(pendingSVG);
      pendingSVG = null;
    } else {
      if (currentSVG != null) {
        loadSVGUrl(currentSVG);
      }
    }
  }
Beispiel #5
0
 /**
  * Desplaza la imagen
  *
  * @param dx Desplazamiento horizontal en pixeles
  * @param dy Desplazamiento vertical en pixeles
  */
 public void pan(int dx, int dy) {
   mouseHandler.pan(dx, dy);
 }
Beispiel #6
0
 /** Activa el modo de visualización de movimiento de la imagen vectorial. */
 public void setModePan() {
   mouseHandler.type = MouseHandler.PAN_MOUSE;
   logger.debug("Modo pan");
 }
Beispiel #7
0
 /** Obtiene el nodo sobre el que se pueden seleccionar elementos */
 public String getSelectableAncestorId() {
   return mouseHandler.getSelectableAncestorId();
 }
Beispiel #8
0
 /** Cancela la inserción del último elemento dibujado. */
 public void cancelDraw() {
   mouseHandler.cancelDraw();
 }
Beispiel #9
0
 /**
  * Dibuja un nodo que representa un punto.
  *
  * @param parentNodeId Id del nodo padre
  */
 public void setModeDrawPoint(String parentNodeId) {
   mouseHandler.initDraw(parentNodeId);
   mouseHandler.type = MouseHandler.POINT_MOUSE;
   logger.debug("Modo dibujar punto. Id nodo padre: " + parentNodeId);
 }
Beispiel #10
0
 /**
  * Dibuja un nodo que representa una linea.
  *
  * @param parentNodeId Id del nodo padre
  */
 public void setModeDrawLine(String parentNodeId) {
   mouseHandler.initDraw(parentNodeId);
   mouseHandler.type = MouseHandler.POLYLINE_MOUSE;
   logger.debug("Modo dibujar linea. Id nodo padre: " + parentNodeId);
 }
Beispiel #11
0
  public SVGViewer(Composite parent, int style, boolean synchPaint) {
    super(parent, style);

    this.synchPaint = synchPaint;

    this.addControlListener(
        new org.eclipse.swt.events.ControlAdapter() {
          public void controlResized(org.eclipse.swt.events.ControlEvent e) {
            viewerResized();
          }
        });

    this.addPaintListener(
        new PaintListener() {
          public void paintControl(PaintEvent e) {
            if (svgImage == null) {
              // raster.setCamera();
              // raster.update();
              // raster.sendPixels();
              drawSVG();
            }

            GC gc = new GC(offscreenImage);

            gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
            gc.fillRectangle(0, 0, width, height);

            drawBackground(gc);

            // Dibujo de la imagen con el SVG
            if (svgImage != null && !svgImage.isDisposed()) {
              gc.drawImage(svgImage, 0, 0);
            }

            drawForeground(gc);
            gc.dispose();

            e.gc.drawImage(offscreenImage, 0, 0);
          }
        });

    // Establece la implementación de ImageLoader para cargar imagenes
    SVGImageElem.setImageLoader(this);

    // Colas de eventos
    eventQueue = new SVGEventQueue();
    listeners = new TinyVector(4);
    // Cache de imagenes
    imageCash = new Hashtable();

    // Listeners eventos sobre el SVG
    errorListeners = new Vector();
    linkListeners = new Vector();
    rasterTransformListeners = new Vector();
    rasterUpdateListeners = new Vector();
    pointInsertedListeners = new Vector();
    loadListeners = new Vector();
    drawListeners = new Vector();

    currentZone = new TinyRect();

    // Manejador de eventos
    mouseHandler = new MouseHandler(this);
    mouseHandler.type = MouseHandler.LINK_MOUSE;
    // NUEVO
    // mouseHandler.setPanType(MouseHandler.PAN_LINE);
    mouseHandler.setPanType(MouseHandler.PAN_MOVE);
    // FIN NUEVO
    addMouseListener(mouseHandler);
    addMouseMoveListener(mouseHandler);

    antialiased = true;

    //		PlayerListener defaultListener = new PlayerListener(this);
    //		this.addEventListener("default", defaultListener, false);
    //		this.start();
  }
 public void mouseClicked(MouseEvent e) {
   super.mousePressed(e);
   if (e.getClickCount() > 1 && overTabIndex != -1) {
     ((CloseAndMaxTabbedPane) tabPane).fireDoubleClickTabEvent(e, overTabIndex);
   }
 }
Beispiel #13
0
 /**
  * Moves the mouse from a certain point to another, with specified speed.
  *
  * @param speed the lower, the faster.
  * @param curX the x value to move from
  * @param curY the y value to move from
  * @param targetX the x value to move to
  * @param targetY the y value to move to
  */
 public void windMouse(
     final int speed, final int curX, final int curY, final int targetX, final int targetY) {
   mouseHandler.moveMouse(speed, curX, curY, targetX, targetY, 0, 0);
 }
Beispiel #14
0
  /**
   * Moves the mouse to the specified point at a certain sped.
   *
   * @param speed the lower, the faster.
   * @param x the x value
   * @param y the y value
   * @param randomX x-axis randomness (gets added to x)
   * @param randomY y-axis randomness (gets added to y)
   * @param MousePaths Whether or not to use Mouse Path generator
   */
  public void moveMouse(
      final int speed,
      final int x,
      final int y,
      final int randomX,
      final int randomY,
      final boolean MousePaths) {
    int thisX = getX(), thisY = getY();
    if (!InputManager.isOnCanvas(thisX, thisY)) {
      switch (random(1, 5)) { // on which side of canvas should it enter
        case 1:
          thisX = -1;
          thisY = random(0, CanvasWrapper.getGameHeight());
          break;
        case 2:
          thisX = random(0, CanvasWrapper.getGameWidth());
          thisY = CanvasWrapper.getGameHeight() + 1;
          break;
        case 3:
          thisX = CanvasWrapper.getGameWidth() + 1;
          thisY = random(0, CanvasWrapper.getGameHeight());
          break;
        case 4:
          thisX = random(0, CanvasWrapper.getGameWidth());
          thisY = -1;
          break;
      }
    }
    if (MousePaths) {
      final Point[] path =
          mouseHandler.generateMousePath(
              (int) Math.hypot(thisX - x, thisX - y) / 100 + random(1, 3),
              new Point(thisX, thisY),
              new Point(x, y));
      if (path == null) {
        new Exception(
                "Mouse paths were enabled, and the path was returned null. Please report on forums: ")
            .printStackTrace();
      }
      windMouse(speed, thisX, thisY, path[0].x, path[0].y);
      for (int i = 1; i < path.length; i++) {
        try {
          if (i == path.length - 1) {
            windMouse(
                speed,
                path[i - 1].x,
                path[i - 1].y,
                random(path[i].x, path[i].x + randomX),
                random(path[i].y, path[i].y + randomY));
          } else {
            windMouse(speed, path[i - 1].x, path[i - 1].y, path[i].x, path[i].y);
          }

        } catch (final Exception e) {
          e.printStackTrace();
        }
      }

    } else {
      windMouse(speed, thisX, thisY, random(x, x + randomX), random(y, y + randomY));
    }
  }
Beispiel #15
0
 public void setModeLink(String selectableAncestorId) {
   mouseHandler.setSelectableAncestorId(selectableAncestorId);
   mouseHandler.type = MouseHandler.LINK_MOUSE;
   logger.debug("Modo seleccion. Id nodo ancestro: " + selectableAncestorId);
 }
Beispiel #16
0
 /** Activa el modo de seleccion. */
 public void setModeLink() {
   mouseHandler.type = MouseHandler.LINK_MOUSE;
   logger.debug("Modo seleccion");
 }
Beispiel #17
0
 /** Activa el modo Zoom In de visualización de la imagen. */
 public void setModeZoomIn() {
   mouseHandler.type = MouseHandler.ZOOM_IN_MOUSE;
   logger.debug("Modo zoom in");
 }
Beispiel #18
0
 /**
  * Dibuja un nodo que representa un poligono.
  *
  * @param parentNodeId Id del nodo padre
  */
 public void setModeDrawPolygon(String parentNodeId) {
   mouseHandler.initDraw(parentNodeId);
   mouseHandler.type = MouseHandler.POLYGON_MOUSE;
   logger.debug("Modo dibujar poligono. Id nodo padre: " + parentNodeId);
 }
Beispiel #19
0
 /** Activa el modo Zoom Out de visualización de la imagen. */
 public void setModeZoomOut() {
   mouseHandler.type = MouseHandler.ZOOM_OUT_MOUSE;
   logger.debug("Modeo zoom out");
 }
Beispiel #20
0
 /**
  * Confirma la inserción de un elemento de dibujo en el SVG, cuando éste puede tener un número
  * variable de vértices.
  *
  * @return El nodo dibujado
  */
 public SVGNode endDraw() {
   return mouseHandler.endDraw();
 }
Beispiel #21
0
 /** Hace zoom out directamente, sin necesidad de pulsar sobre el canvas. */
 public void zoomOut() {
   mouseHandler.zoomOut();
 }
Beispiel #22
0
 /** Obtiene el ultimo nodo dibujado e insertado. */
 public SVGNode getLastInsertedNode() {
   return mouseHandler.getLastInsertedNode();
 }
Beispiel #23
0
 public void zoomIn(int x0, int y0, int x1, int y1, boolean force) {
   mouseHandler.zoomIn(x0, y0, x1, y1, force);
 }
Beispiel #24
0
 /** Establece el nodo sobre el que se pueden seleccionar elementos */
 public void setSelectableAncestorId(String selectableAncestorId) {
   mouseHandler.setSelectableAncestorId(selectableAncestorId);
 }
Beispiel #25
0
 public void zoomIn(int x0, int y0, int x1, int y1) {
   mouseHandler.zoomIn(x0, y0, x1, y1, false);
 }