@Override public void windowLostFocus(WindowEvent e) { ft.possiblyDisposeOfTipWindow(); } });
@Override public void componentShown(ComponentEvent e) { handleComponentEvent(e); }
@Override public void mousePressed(MouseEvent e) { actionPerformed(null); // Manually create "real" window }
@Override public void actionPerformed(ActionEvent e) { if (!getFocusableWindowState()) { setFocusableWindowState(true); setBottomPanel(); textArea.removeMouseListener(tipListener); pack(); addWindowFocusListener(new WindowAdapter() { @Override public void windowLostFocus(WindowEvent e) { ft.possiblyDisposeOfTipWindow(); } }); ft.removeListeners(); if (e==null) { // Didn't get here via our mouseover timer requestFocus(); } } }
SizeGrip() { MouseHandler adapter = new MouseHandler(); addMouseListener(adapter); addMouseMotionListener(adapter); setPreferredSize(new Dimension(16, 16)); }
@Override public void keyPressed(KeyEvent e) { if (e.getKeyCode()==KeyEvent.VK_ESCAPE) { possiblyDisposeOfTipWindow(); } else if (e.getKeyCode()==KeyEvent.VK_F2) { if (tipWindow!=null && !tipWindow.getFocusableWindowState()) { tipWindow.actionPerformed(null); e.consume(); // Don't do bookmarking stuff } } }
public FocusableTip(JTextArea textArea, HyperlinkListener listener) { setTextArea(textArea); this.hyperlinkListener = listener; textAreaListener = new TextAreaListener(); tipVisibleBounds = new Rectangle(); }
public void toolTipRequested(MouseEvent e, String text) { if (text==null || text.length()==0) { possiblyDisposeOfTipWindow(); lastText = text; return; } if (lastText==null || text.length()!=lastText.length() || !text.equals(lastText)) { possiblyDisposeOfTipWindow(); createAndShowTipWindow(e, text); } }
@Override public void mouseExited(MouseEvent e) { // Since we registered this listener on the child components of // the JWindow, not the JWindow iteself, we have to be careful. Component source = (Component)e.getSource(); Point p = e.getPoint(); SwingUtilities.convertPointToScreen(p, source); if (!TipWindow.this.getBounds().contains(p)) { ft.possiblyDisposeOfTipWindow(); } }
/** * Ensures that the cursor for this component is appropriate for the * orientation. * * @param ltr Whether the current component orientation is LTR. */ protected void possiblyFixCursor(boolean ltr) { int cursor = Cursor.NE_RESIZE_CURSOR; if (ltr) { cursor = Cursor.NW_RESIZE_CURSOR; } if (cursor!=getCursor().getType()) { setCursor(Cursor.getPredefinedCursor(cursor)); } }
/** * Disposes of this window. */ @Override public void dispose() { //System.out.println("[DEBUG]: Disposing..."); Container cp = getContentPane(); for (int i=0; i<cp.getComponentCount(); i++) { // Okay if listener is already removed cp.getComponent(i).removeMouseListener(tipListener); } ft.removeListeners(); super.dispose(); }
void removeListeners() { //System.out.println("DEBUG: Removing text area listeners"); textAreaListener.uninstall(); }
private void handleComponentEvent(ComponentEvent e) { possiblyDisposeOfTipWindow(); }
@Override public void componentResized(ComponentEvent e) { handleComponentEvent(e); }
@Override public void keyPressed(KeyEvent e) { if (e.getKeyCode()==KeyEvent.VK_ESCAPE) { TipWindow.this.ft.possiblyDisposeOfTipWindow(); } } };
@Override public void componentHidden(ComponentEvent e) { handleComponentEvent(e); }
@Override public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType()==HyperlinkEvent.EventType.ACTIVATED) { TipWindow.this.ft.possiblyDisposeOfTipWindow(); } } });
@Override public void componentMoved(ComponentEvent e) { handleComponentEvent(e); }
@Override public void caretUpdate(CaretEvent e) { Object source = e.getSource(); if (source == textArea) { possiblyDisposeOfTipWindow(); } }