public String getTextForGesture(long parId, Point topLeft, Point bottomRight) { try { Paragraph p = lockManager.getParFromId(parId); int parY = documentPanel.textPane.modelToView(p.getOffset()).y; topLeft.y = topLeft.y + parY; bottomRight.y = bottomRight.y + parY; int startOffset = documentPanel.textPane.viewToModel(topLeft); int endOffset = documentPanel.textPane.viewToModel(bottomRight); while (startOffset > 0 && Character.isLetterOrDigit((document.getText(startOffset - 1, 1).charAt(0)))) startOffset--; while (endOffset < document.getLength() && Character.isLetterOrDigit((document.getText(endOffset, 1).charAt(0)))) endOffset++; String text = document.getText(startOffset, endOffset - startOffset); return text; } catch (Exception e) { System.out.println("EditorClient: addGestureAction. error identifying text"); e.printStackTrace(); return ""; } // return "PLACEBO"; }
/** * We generally draw lines to/from the <I>center</I> of components; this method finds the center * of the argument's enclosing rectangle * * @return Point at the center of <CODE>c</CODE> * @param c The component whose center point we wish to determine */ protected Point getCenterLocation(Component c) { Point p1 = new Point(); Point p2 = new Point(); // start with the relative location... c.getLocation(p1); // get to the middle of the fractionsLabel Dimension d = c.getSize(); p1.x += d.width / 2; p1.y += d.height / 2; Component parent = c.getParent(); // System.err.println("parent=" + parent); while (parent != null) { parent.getLocation(p2); p1.x += p2.x; p1.y += p2.y; if (STOP.equals(parent.getName())) break; parent = parent.getParent(); } return p1; }
public Point getDockingSpot(char location) { Point p = new Point(getWidth(), getHeight()); int d = getDividerLocation() + getDividerSize() / 2; switch (location) { case DOCK_NORTH: p.x = d; p.y = 0; break; case DOCK_SOUTH: p.x = d; break; case DOCK_EAST: p.y = d; break; case DOCK_WEST: p.x = 0; p.y = d; break; case DOCK_CENTER: p.x /= 2; p.y /= 2; break; } return p; }
public void scrollToLine(FilePanel fp, int line) { JScrollPane scrollPane; FilePanel fp2; BufferDocumentIF bd; JTextComponent editor; JViewport viewport; Rectangle rect; int offset; Point p; Rectangle viewRect; Dimension viewSize; Dimension extentSize; int x; fp2 = fp == filePanelLeft ? filePanelRight : filePanelLeft; bd = fp.getBufferDocument(); if (bd == null) { return; } offset = bd.getOffsetForLine(line); if (offset < 0) { return; } viewport = fp.getScrollPane().getViewport(); editor = fp.getEditor(); try { rect = editor.modelToView(offset); if (rect == null) { return; } p = rect.getLocation(); p.y -= getHeightOffset(fp); p.y += getCorrectionOffset(fp2); // Do not allow scrolling before the begin. if (p.y < 0) { p.y = 0; } // Do not allow scrolling after the end. viewSize = viewport.getViewSize(); viewRect = viewport.getViewRect(); extentSize = viewport.getExtentSize(); if (p.y > viewSize.height - extentSize.height) { p.y = viewSize.height - extentSize.height; } p.x = viewRect.x; viewport.setViewPosition(p); } catch (Exception ex) { ex.printStackTrace(); } }
public Point getLocation() { if (inEditMode) { tmpLoc.x = defLoc.x; tmpLoc.y = defLoc.y; } else { tmpLoc.x = curLoc.x; tmpLoc.y = curLoc.y; } return tmpLoc; }
public void reshape(int x, int y, int w, int h) { if (inEditMode) { defLoc.x = x; defLoc.y = y; defDim.width = w; defDim.height = h; } curLoc.x = x; curLoc.y = y; curDim.width = w; curDim.height = h; super.reshape(x, y, w, h); }
/** * Calls the given treeNode. * * @param treeNode the <tt>TreeNode</tt> to call */ private void call(TreeNode treeNode, JButton button, boolean isVideo, boolean isDesktopSharing) { if (!(treeNode instanceof ContactNode)) return; UIContact contactDescriptor = ((ContactNode) treeNode).getContactDescriptor(); Point location = new Point(button.getX(), button.getY() + button.getHeight()); SwingUtilities.convertPointToScreen(location, treeContactList); location.y = location.y + treeContactList.getPathBounds(treeContactList.getSelectionPath()).y; location.x += 8; location.y -= 8; CallManager.call(contactDescriptor, isVideo, isDesktopSharing, treeContactList, location); }
private int getCurrentLineCenter(FilePanel fp) { JScrollPane scrollPane; BufferDocumentIF bd; JTextComponent editor; JViewport viewport; int line; Rectangle rect; int offset; Point p; editor = fp.getEditor(); scrollPane = fp.getScrollPane(); viewport = scrollPane.getViewport(); p = viewport.getViewPosition(); offset = editor.viewToModel(p); // Scroll around the center of the editpane p.y += getHeightOffset(fp); offset = editor.viewToModel(p); bd = fp.getBufferDocument(); if (bd == null) { return -1; } line = bd.getLineForOffset(offset); return line; }
public Component add(JInternalFrame frame) { JInternalFrame[] array = getAllFrames(); Point p; int w; int h; Component retval = super.add(frame); checkDesktopSize(); if (array.length > 0) { p = array[0].getLocation(); p.x = p.x + FRAME_OFFSET; p.y = p.y + FRAME_OFFSET; } else { p = new Point(0, 0); } frame.setLocation(p.x, p.y); /* Jimmy: this is a bit buggy (frames get constant size) if (frame.isResizable()) { w = getWidth() - (getWidth()/3); h = getHeight() - (getHeight()/3); if (w < frame.getMinimumSize().getWidth()) w = (int)frame.getMinimumSize().getWidth(); if (h < frame.getMinimumSize().getHeight()) h = (int)frame.getMinimumSize().getHeight(); frame.setSize(w, h); }*/ moveToFront(frame); frame.setVisible(true); try { frame.setSelected(true); } catch (PropertyVetoException e) { frame.toBack(); } return retval; }
/** * method to negotiate draganddrop when mouse is pressed * * @param e */ public void mousePressed(MouseEvent e) { /** Set up click point and set ActivePanel */ Point p = e.getPoint(); System.out.println(p); if (!setActivePanel(p)) return; /** record where the initial click occurred */ OriP = activePanel; /** Check whether click was over an image label */ selectedComponent = getImageLabel(p); if (selectedComponent == null) return; /** Check whether click was over waste box */ if (selectedComponent.getName().equals("WasteBox")) return; /** * remove selected component from active panel add it to the glass panel set the offset and * original position */ Rectangle labelR = selectedComponent.getBounds(); Rectangle panelR = activePanel.getBounds(); // if(labelR.contains(p.x - panelR.x, p.y - panelR.y)) // { activePanel.remove(selectedComponent); selected = true; glassPanel.add(selectedComponent); offset.x = p.x - labelR.x - panelR.x; offset.y = p.y - labelR.y - panelR.y; dragging = true; Original = labelR.getLocation(); // } }
private void centerComponents() { Rectangle bounds = getBounds(); Point point = imageComponent.getLocation(); point.x = (bounds.width - imageComponent.getWidth()) / 2; point.y = (bounds.height - imageComponent.getHeight()) / 2; imageComponent.setLocation(point); }
public TabSpawnable spawn() { JFrame f = new JFrame(); f.getContentPane().setLayout(new BorderLayout()); f.setTitle(_title); TabSpawnable newPanel = (TabSpawnable) clone(); if (newPanel == null) return null; // failed to clone newPanel.setTitle(_title); if (newPanel instanceof TabToDoTarget) { TabToDoTarget me = (TabToDoTarget) this; TabToDoTarget it = (TabToDoTarget) newPanel; it.setTarget(me.getTarget()); } else if (newPanel instanceof TabModelTarget) { TabModelTarget me = (TabModelTarget) this; TabModelTarget it = (TabModelTarget) newPanel; it.setTarget(me.getTarget()); } f.getContentPane().add(newPanel, BorderLayout.CENTER); Rectangle bounds = getBounds(); bounds.height += OVERLAPP * 2; f.setBounds(bounds); Point loc = new Point(0, 0); SwingUtilities.convertPointToScreen(loc, this); loc.y -= OVERLAPP; f.setLocation(loc); f.setVisible(true); if (_tear && (getParent() instanceof JTabbedPane)) ((JTabbedPane) getParent()).remove(this); return newPanel; }
@Override protected RelativePoint getPointToShowResults() { Rectangle rect = myEntryTable.getCellRect(myEntryTable.getSelectedRow(), 1, false); Point location = rect.getLocation(); location.y += rect.height; return new RelativePoint(myEntryTable, location); }
/** * Set the offset from the center for this <code>MetSymbol</code>. * * @param x x offset * @param y y offset */ public void setOffset(int x, int y) { if (offset != null) { offset.x = x; offset.y = y; } bounds.x = x; bounds.y = y; }
/** {@inheritDoc} */ @Override public void mouseDragged(final MouseEvent aEvent) { final MouseEvent event = convertEvent(aEvent); final Point point = event.getPoint(); // Update the selected channel while dragging... this.controller.setSelectedChannel(point); if (getModel().isCursorMode() && (this.movingCursor >= 0)) { this.controller.moveCursor(this.movingCursor, getCursorDropPoint(point)); aEvent.consume(); } else { if ((this.lastClickPosition == null) && ((aEvent.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0)) { this.lastClickPosition = new Point(point); } final JScrollPane scrollPane = getAncestorOfClass(JScrollPane.class, (Component) aEvent.getSource()); if ((scrollPane != null) && (this.lastClickPosition != null)) { final JViewport viewPort = scrollPane.getViewport(); final Component signalView = this.controller.getSignalDiagram().getSignalView(); boolean horizontalOnly = (aEvent.getModifiersEx() & InputEvent.ALT_DOWN_MASK) != 0; boolean verticalOnly = horizontalOnly && ((aEvent.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) != 0); int dx = aEvent.getX() - this.lastClickPosition.x; int dy = aEvent.getY() - this.lastClickPosition.y; Point scrollPosition = viewPort.getViewPosition(); int newX = scrollPosition.x; if (!verticalOnly) { newX -= dx; } int newY = scrollPosition.y; if (verticalOnly || !horizontalOnly) { newY -= dy; } int diagramWidth = signalView.getWidth(); int viewportWidth = viewPort.getWidth(); int maxX = diagramWidth - viewportWidth - 1; scrollPosition.x = Math.max(0, Math.min(maxX, newX)); int diagramHeight = signalView.getHeight(); int viewportHeight = viewPort.getHeight(); int maxY = diagramHeight - viewportHeight; scrollPosition.y = Math.max(0, Math.min(maxY, newY)); viewPort.setViewPosition(scrollPosition); } // Use UNCONVERTED/ORIGINAL mouse event! handleZoomRegion(aEvent, this.lastClickPosition); } }
public void reshape(int x, int y, int w, int h) { if (inEditMode) { defLoc.x = x; defLoc.y = y; defDim.width = w; defDim.height = h; } curLoc.x = x; curLoc.y = y; curDim.width = w; curDim.height = h; if (!inEditMode) { if ((h != nHeight) || (h < rHeight)) { adjustFont(w, h); } } super.reshape(x, y, w, h); }
protected void showInfoPopup(String info, int x, int y) { JPanel content = new JPanel(); content.add(new JLabel(info)); content.setBorder(BorderFactory.createLineBorder(Color.BLACK)); Point location = getLocationOnScreen(); location.x += x + 5; location.y += y + 5; popup = PopupFactory.getSharedInstance().getPopup(this, content, location.x, location.y); popup.show(); }
public static Window moveTo( JComponent content, Point screenPoint, final Dimension headerCorrectionSize) { setDefaultCursor(content); final Window wnd = SwingUtilities.getWindowAncestor(content); if (headerCorrectionSize != null) { screenPoint.y -= headerCorrectionSize.height; } wnd.setLocation(screenPoint); return wnd; }
@Override public Point getLocationOnScreen() { Dimension headerCorrectionSize = myLocateByContent ? myHeaderPanel.getPreferredSize() : null; Point screenPoint = myContent.getLocationOnScreen(); if (headerCorrectionSize != null) { screenPoint.y -= headerCorrectionSize.height; } return screenPoint; }
public void setSizeRatio(double x, double y) { xRatio = x; yRatio = y; if (x > 1.0) xRatio = x - 1.0; if (y > 1.0) yRatio = y - 1.0; if (defDim.width <= 0) defDim = getPreferredSize(); curLoc.x = (int) ((double) defLoc.x * xRatio); curLoc.y = (int) ((double) defLoc.y * yRatio); curDim.width = (int) ((double) defDim.width * xRatio); curDim.height = (int) ((double) defDim.height * yRatio); if (!inEditMode) setBounds(curLoc.x, curLoc.y, curDim.width, curDim.height); }
private void processDrag(final MouseEvent e) { if (myDragCancelled) return; if (!isDraggingNow()) { if (myPressedPoint == null) return; if (isWithinDeadZone(e)) return; myDragPane = findLayeredPane(e); if (myDragPane == null) return; final BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); paint(image.getGraphics()); myDragButtonImage = new JLabel(new ImageIcon(image)) { public String toString() { return "Image for: " + StripeButton.this.toString(); } }; myDragPane.add(myDragButtonImage, JLayeredPane.POPUP_LAYER); myDragButtonImage.setSize(myDragButtonImage.getPreferredSize()); setVisible(false); myPane.startDrag(); myDragKeyEventDispatcher = new DragKeyEventDispatcher(); KeyboardFocusManager.getCurrentKeyboardFocusManager() .addKeyEventDispatcher(myDragKeyEventDispatcher); } if (!isDraggingNow()) return; Point xy = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), myDragPane); if (myPressedPoint != null) { xy.x -= myPressedPoint.x; xy.y -= myPressedPoint.y; } myDragButtonImage.setLocation(xy); SwingUtilities.convertPointToScreen(xy, myDragPane); final Stripe stripe = myPane.getStripeFor(new Rectangle(xy, myDragButtonImage.getSize()), (Stripe) getParent()); if (stripe == null) { if (myLastStripe != null) { myLastStripe.resetDrop(); } } else { if (myLastStripe != null && myLastStripe != stripe) { myLastStripe.resetDrop(); } stripe.processDropButton(this, myDragButtonImage, xy); } myLastStripe = stripe; }
public void duplication() { if (shapes.size() != 0) { for (Shape shape : shapes) { Shape clone = shape.duplicateShape(); Point point = new Point(shape.origin()); point.y += 120; clone.setOrigin(point); shapesCloneList.add(clone); System.out.println("shape is duplicated"); } this.repaint(); } }
/** * Calculates the drop point for the cursor under the given coordinate. * * @param aCoordinate the coordinate to return the channel drop point for, cannot be <code>null * </code>. * @return a drop point, never <code>null</code>. */ private Point getCursorDropPoint(final Point aCoordinate) { Point dropPoint = new Point(aCoordinate); if (getModel().isSnapCursorMode()) { final MeasurementInfo signalHover = getModel().getSignalHover(aCoordinate); if ((signalHover != null) && !signalHover.isEmpty()) { dropPoint.x = signalHover.getMidSamplePos().intValue(); } } dropPoint.y = 0; return dropPoint; }
public void setSizeRatio(double x, double y) { double rx = x; double ry = y; if (rx > 1.0) rx = x - 1.0; if (ry > 1.0) ry = y - 1.0; if (defDim.width <= 0) defDim = getPreferredSize(); curLoc.x = (int) ((double) defLoc.x * rx); curLoc.y = (int) ((double) defLoc.y * ry); curDim.width = (int) ((double) defDim.width * rx); curDim.height = (int) ((double) defDim.height * ry); if (!inEditMode) setBounds(curLoc.x, curLoc.y, curDim.width, curDim.height); twin.setSizeRatio(x, y); }
/** Constrains a point to the current grid. */ protected Point constrainPoint(Point p) { // constrain to view size Dimension size = getSize(); // p.x = Math.min(size.width, Math.max(1, p.x)); // p.y = Math.min(size.height, Math.max(1, p.y)); p.x = Geom.range(1, size.width, p.x); p.y = Geom.range(1, size.height, p.y); if (fConstrainer != null) { return fConstrainer.constrainPoint(p); } return p; }
public void setEditMode(boolean s) { twin.setEditMode(s); setOpaque(s); if (s) { addMouseListener(ml); curLoc.x = defLoc.x; curLoc.y = defLoc.y; defDim = getPreferredSize(); curDim.width = defDim.width; curDim.height = defDim.height; } else removeMouseListener(ml); inEditMode = s; }
private void fixActualPoint(Point actualPoint) { if (!isAwtTooltip()) return; if (!myIsRealPopup) return; Dimension size = myComponent.getPreferredSize(); Balloon.Position position = myHintHint.getPreferredPosition(); int shift = BalloonImpl.getPointerLength(position, false); switch (position) { case below: actualPoint.y += shift; break; case above: actualPoint.y -= (shift + size.height); break; case atLeft: actualPoint.x -= (shift + size.width); break; case atRight: actualPoint.y += shift; break; } }
/** Handles mouse dragged event */ public void mouseDragged(MouseEvent ev) { Window w = (Window) ev.getSource(); if (isMovingWindow) { Point windowPt; try { windowPt = (Point) AccessController.doPrivileged(getLocationAction); windowPt.x = windowPt.x - dragOffsetX; windowPt.y = windowPt.y - dragOffsetY; w.setLocation(windowPt); windowMoved = true; } catch (PrivilegedActionException e) { } } }
public void flecha(Graphics papel, int x1, int y1, int x2, int y2) { double ang = 0.0, angSep = 0.0; double tx = 0, ty = 0; int dist = 0; Point punto1 = null, punto2 = null; punto2 = new Point(x1, y1); punto1 = new Point(x2, y2); dist = 15; ty = -(punto1.y - punto2.y) * 1.0; tx = (punto1.x - punto2.x) * 1.0; ang = Math.atan(ty / tx); if (tx < 0) ang += Math.PI; Point p1 = new Point(), p2 = new Point(), punto = punto2; angSep = 25.0; p1.x = (int) (punto.x + dist * Math.cos(ang - Math.toRadians(angSep))); p1.y = (int) (punto.y - dist * Math.sin(ang - Math.toRadians(angSep))); p2.x = (int) (punto.x + dist * Math.cos(ang + Math.toRadians(angSep))); p2.y = (int) (punto.y - dist * Math.sin(ang + Math.toRadians(angSep))); Graphics2D g2D = (Graphics2D) papel; papel.setColor(Color.black); g2D.setStroke(new BasicStroke(1.2f)); papel.drawLine(punto1.x, punto1.y, punto.x, punto.y); int x[] = {p1.x, punto.x, p2.x}; int y[] = {p1.y, punto.y, p2.y}; Polygon myTri = new Polygon(x, y, 3); papel.setColor(Color.BLACK); papel.drawPolygon(myTri); papel.fillPolygon(myTri); }
public static Point getLocationForCaret(JTextComponent pathTextField) { Point point; int position = pathTextField.getCaretPosition(); try { final Rectangle rec = pathTextField.modelToView(position); point = new Point((int) rec.getMaxX(), (int) rec.getMaxY()); } catch (BadLocationException e) { point = pathTextField.getCaret().getMagicCaretPosition(); } SwingUtilities.convertPointToScreen(point, pathTextField); point.y += 2; return point; }