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(); }
/** * @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)); } } }
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); } } }
/** * 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); }
/** Activa el modo de visualización de movimiento de la imagen vectorial. */ public void setModePan() { mouseHandler.type = MouseHandler.PAN_MOUSE; logger.debug("Modo pan"); }
/** Obtiene el nodo sobre el que se pueden seleccionar elementos */ public String getSelectableAncestorId() { return mouseHandler.getSelectableAncestorId(); }
/** Cancela la inserción del último elemento dibujado. */ public void cancelDraw() { mouseHandler.cancelDraw(); }
/** * 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); }
/** * 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); }
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); } }
/** * 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); }
/** * 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)); } }
public void setModeLink(String selectableAncestorId) { mouseHandler.setSelectableAncestorId(selectableAncestorId); mouseHandler.type = MouseHandler.LINK_MOUSE; logger.debug("Modo seleccion. Id nodo ancestro: " + selectableAncestorId); }
/** Activa el modo de seleccion. */ public void setModeLink() { mouseHandler.type = MouseHandler.LINK_MOUSE; logger.debug("Modo seleccion"); }
/** 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"); }
/** * 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); }
/** 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"); }
/** * 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(); }
/** Hace zoom out directamente, sin necesidad de pulsar sobre el canvas. */ public void zoomOut() { mouseHandler.zoomOut(); }
/** Obtiene el ultimo nodo dibujado e insertado. */ public SVGNode getLastInsertedNode() { return mouseHandler.getLastInsertedNode(); }
public void zoomIn(int x0, int y0, int x1, int y1, boolean force) { mouseHandler.zoomIn(x0, y0, x1, y1, force); }
/** Establece el nodo sobre el que se pueden seleccionar elementos */ public void setSelectableAncestorId(String selectableAncestorId) { mouseHandler.setSelectableAncestorId(selectableAncestorId); }
public void zoomIn(int x0, int y0, int x1, int y1) { mouseHandler.zoomIn(x0, y0, x1, y1, false); }