src/macosx/classes/sun/lwawt/LWTextComponentPeer.java

Print this page




  64 
  65     @Override
  66     public void initialize() {
  67         super.initialize();
  68         synchronized (getDelegateLock()) {
  69             // This listener should be added before setText().
  70             getTextComponent().getDocument().addDocumentListener(this);
  71         }
  72         setEditable(getTarget().isEditable());
  73         setText(getTarget().getText());
  74         getTarget().addInputMethodListener(this);
  75         final int start = getTarget().getSelectionStart();
  76         final int end = getTarget().getSelectionEnd();
  77         if (end > start) {
  78             select(start, end);
  79         }
  80         setCaretPosition(getTarget().getCaretPosition());
  81         firstChangeSkipped = true;
  82     }
  83 












  84     abstract JTextComponent getTextComponent();
  85 
  86     public Dimension getPreferredSize(final int rows, final int columns) {
  87         final Insets insets;
  88         synchronized (getDelegateLock()) {
  89             insets = getDelegate().getInsets();
  90         }
  91         final int borderHeight = insets.top + insets.bottom;
  92         final int borderWidth = insets.left + insets.right;
  93         final FontMetrics fm = getFontMetrics(getFont());
  94         final int charWidth = (fm != null) ? fm.charWidth(WIDE_CHAR) : 10;
  95         final int itemHeight = (fm != null) ? fm.getHeight() : 10;
  96         return new Dimension(columns * charWidth + borderWidth,
  97                              rows * itemHeight + borderHeight);
  98     }
  99 
 100     @Override
 101     public final void setEditable(final boolean editable) {
 102         synchronized (getDelegateLock()) {
 103             getTextComponent().setEditable(editable);




  64 
  65     @Override
  66     public void initialize() {
  67         super.initialize();
  68         synchronized (getDelegateLock()) {
  69             // This listener should be added before setText().
  70             getTextComponent().getDocument().addDocumentListener(this);
  71         }
  72         setEditable(getTarget().isEditable());
  73         setText(getTarget().getText());
  74         getTarget().addInputMethodListener(this);
  75         final int start = getTarget().getSelectionStart();
  76         final int end = getTarget().getSelectionEnd();
  77         if (end > start) {
  78             select(start, end);
  79         }
  80         setCaretPosition(getTarget().getCaretPosition());
  81         firstChangeSkipped = true;
  82     }
  83 
  84     @Override
  85     protected final void disposeImpl() {
  86         synchronized (getDelegateLock()) {
  87             // visible caret has a timer thread which must be stopped
  88             getTextComponent().getCaret().setVisible(false);
  89         }
  90         super.disposeImpl();
  91     }
  92 
  93     /**
  94      * This method should be called under getDelegateLock().
  95      */
  96     abstract JTextComponent getTextComponent();
  97 
  98     public Dimension getPreferredSize(final int rows, final int columns) {
  99         final Insets insets;
 100         synchronized (getDelegateLock()) {
 101             insets = getDelegate().getInsets();
 102         }
 103         final int borderHeight = insets.top + insets.bottom;
 104         final int borderWidth = insets.left + insets.right;
 105         final FontMetrics fm = getFontMetrics(getFont());
 106         final int charWidth = (fm != null) ? fm.charWidth(WIDE_CHAR) : 10;
 107         final int itemHeight = (fm != null) ? fm.getHeight() : 10;
 108         return new Dimension(columns * charWidth + borderWidth,
 109                              rows * itemHeight + borderHeight);
 110     }
 111 
 112     @Override
 113     public final void setEditable(final boolean editable) {
 114         synchronized (getDelegateLock()) {
 115             getTextComponent().setEditable(editable);