⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 view.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   * @param shape the shape of the view   * @param vf the ViewFactory for creating child views   */  public void removeUpdate(DocumentEvent ev, Shape shape, ViewFactory vf)  {    Element el = getElement();    DocumentEvent.ElementChange ec = ev.getChange(el);    if (ec != null)        updateChildren(ec, ev, vf);    forwardUpdate(ec, ev, shape, vf);    updateLayout(ec, ev, shape);  }  /**   * Receive notification about a change update to the text model.   *   * The default implementation of this method does the following:   * <ul>   * <li>Call {@link #updateChildren} if the element that this view is   * responsible for has changed. This makes sure that the children can   * correctly represent the model.<li>   * <li>Call {@link #forwardUpdate}. This forwards the DocumentEvent to   * the child views.<li>   * <li>Call {@link #updateLayout}. Gives the view a chance to either   * repair its layout, reschedule layout or do nothing at all.</li>   * </ul>   *   * @param ev the DocumentEvent that describes the change   * @param shape the shape of the view   * @param vf the ViewFactory for creating child views   */  public void changedUpdate(DocumentEvent ev, Shape shape, ViewFactory vf)  {    Element el = getElement();    DocumentEvent.ElementChange ec = ev.getChange(el);    if (ec != null)      updateChildren(ec, ev, vf);    forwardUpdate(ec, ev, shape, vf);    updateLayout(ec, ev, shape);  }  /**   * Updates the list of children that is returned by {@link #getView}   * and {@link #getViewCount}.   *   * Element that are specified as beeing added in the ElementChange record are   * assigned a view for using the ViewFactory. Views of Elements that   * are specified as beeing removed are removed from the list.   *   * @param ec the ElementChange record that describes the change of the   *           element   * @param ev the DocumentEvent describing the change of the document model   * @param vf the ViewFactory to use for creating new views   *   * @return whether or not the child views represent the child elements of   *         the element that this view is responsible for. Some views may   *         create views that are responsible only for parts of the element   *         that they are responsible for and should then return false.   *   * @since 1.3   */  protected boolean updateChildren(DocumentEvent.ElementChange ec,                                   DocumentEvent ev,                                   ViewFactory vf)  {    Element[] added = ec.getChildrenAdded();    Element[] removed = ec.getChildrenRemoved();    int index = ec.getIndex();    View[] newChildren = new View[added.length];    for (int i = 0; i < added.length; ++i)      newChildren[i] = vf.create(added[i]);    replace(index, removed.length, newChildren);    return true;  }  /**   * Forwards the DocumentEvent to child views that need to get notified   * of the change to the model. This calles {@link #forwardUpdateToView}   * for each View that must be forwarded to.   *   * @param ec the ElementChange describing the element changes (may be   *           <code>null</code> if there were no changes)   * @param ev the DocumentEvent describing the changes to the model   * @param shape the current allocation of the view   * @param vf the ViewFactory used to create new Views   *   * @since 1.3   */  protected void forwardUpdate(DocumentEvent.ElementChange ec,                               DocumentEvent ev, Shape shape, ViewFactory vf)  {    int count = getViewCount();    for (int i = 0; i < count; i++)      {        View child = getView(i);        forwardUpdateToView(child, ev, shape, vf);      }  }  /**   * Forwards an update event to the given child view. This calls   * {@link #insertUpdate}, {@link #removeUpdate} or {@link #changedUpdate},   * depending on the type of document event.   *   * @param view the View to forward the event to   * @param ev the DocumentEvent to forward   * @param shape the current allocation of the View   * @param vf the ViewFactory used to create new Views   *   * @since 1.3   */  protected void forwardUpdateToView(View view, DocumentEvent ev, Shape shape,                                     ViewFactory vf)  {    DocumentEvent.EventType type = ev.getType();    if (type == DocumentEvent.EventType.INSERT)      view.insertUpdate(ev, shape, vf);    else if (type == DocumentEvent.EventType.REMOVE)      view.removeUpdate(ev, shape, vf);    else if (type == DocumentEvent.EventType.CHANGE)      view.changedUpdate(ev, shape, vf);  }  /**   * Updates the layout.   *   * @param ec the ElementChange that describes the changes to the element   * @param ev the DocumentEvent that describes the changes to the model   * @param shape the current allocation for this view   *   * @since 1.3   */  protected void updateLayout(DocumentEvent.ElementChange ec,                              DocumentEvent ev, Shape shape)  {    Rectangle b = shape.getBounds();    if (ec != null)      preferenceChanged(this, true, true);  }  /**   * Maps a position in the document into the coordinate space of the View.   * The output rectangle usually reflects the font height but has a width   * of zero.   *   * @param pos the position of the character in the model   * @param a the area that is occupied by the view   * @param b either {@link Position.Bias#Forward} or   *        {@link Position.Bias#Backward} depending on the preferred   *        direction bias. If <code>null</code> this defaults to   *        <code>Position.Bias.Forward</code>   *   * @return a rectangle that gives the location of the document position   *         inside the view coordinate space   *   * @throws BadLocationException if <code>pos</code> is invalid   * @throws IllegalArgumentException if b is not one of the above listed   *         valid values   */  public abstract Shape modelToView(int pos, Shape a, Position.Bias b)    throws BadLocationException;  /**   * Maps a region in the document into the coordinate space of the View.   *   * @param p1 the beginning position inside the document   * @param b1 the direction bias for the beginning position   * @param p2 the end position inside the document   * @param b2 the direction bias for the end position   * @param a the area that is occupied by the view   *   * @return a rectangle that gives the span of the document region   *         inside the view coordinate space   *   * @throws BadLocationException if <code>p1</code> or <code>p2</code> are   *         invalid   * @throws IllegalArgumentException if b1 or b2 is not one of the above   *         listed valid values   */  public Shape modelToView(int p1, Position.Bias b1,			   int p2, Position.Bias b2, Shape a)    throws BadLocationException  {    if (b1 != Position.Bias.Forward && b1 != Position.Bias.Backward)      throw new IllegalArgumentException	("b1 must be either Position.Bias.Forward or Position.Bias.Backward");    if (b2 != Position.Bias.Forward && b2 != Position.Bias.Backward)      throw new IllegalArgumentException	("b2 must be either Position.Bias.Forward or Position.Bias.Backward");    Shape s1 = modelToView(p1, a, b1);    Shape s2 = modelToView(p2, a, b2);    return s1.getBounds().union(s2.getBounds());  }  /**   * Maps a position in the document into the coordinate space of the View.   * The output rectangle usually reflects the font height but has a width   * of zero.   *   * This method is deprecated and calls   * {@link #modelToView(int, Position.Bias, int, Position.Bias, Shape)} with   * a bias of {@link Position.Bias#Forward}.   *   * @param pos the position of the character in the model   * @param a the area that is occupied by the view   *   * @return a rectangle that gives the location of the document position   *         inside the view coordinate space   *   * @throws BadLocationException if <code>pos</code> is invalid   *   * @deprecated Use {@link #modelToView(int, Shape, Position.Bias)} instead.   */  public Shape modelToView(int pos, Shape a) throws BadLocationException  {    return modelToView(pos, a, Position.Bias.Forward);  }  /**   * Maps coordinates from the <code>View</code>'s space into a position   * in the document model.   *   * @param x the x coordinate in the view space   * @param y the y coordinate in the view space   * @param a the allocation of this <code>View</code>   * @param b the bias to use   *   * @return the position in the document that corresponds to the screen   *         coordinates <code>x, y</code>   */  public abstract int viewToModel(float x, float y, Shape a, Position.Bias[] b);  /**   * Maps coordinates from the <code>View</code>'s space into a position   * in the document model. This method is deprecated and only there for   * compatibility.   *   * @param x the x coordinate in the view space   * @param y the y coordinate in the view space   * @param a the allocation of this <code>View</code>   *   * @return the position in the document that corresponds to the screen   *         coordinates <code>x, y</code>   *   * @deprecated Use {@link #viewToModel(float, float, Shape, Position.Bias[])}   *             instead.   */  public int viewToModel(float x, float y, Shape a)  {    return viewToModel(x, y, a, new Position.Bias[0]);  }  /**   * Dumps the complete View hierarchy. This method can be used for debugging   * purposes.   */  void dump()  {    // Climb up the hierarchy to the parent.    View parent = getParent();    if (parent != null)      parent.dump();    else      dump(0);  }  /**   * Dumps the view hierarchy below this View with the specified indentation   * level.   *   * @param indent the indentation level to be used for this view   */  void dump(int indent)  {    for (int i = 0; i < indent; ++i)      System.out.print('.');    System.out.println(this);    int count = getViewCount();    for (int i = 0; i < count; ++i)      getView(i).dump(indent + 1);  }  /**   * Returns the document position that is (visually) nearest to the given   * document position <code>pos</code> in the given direction <code>d</code>.   *   * @param c the text component   * @param pos the document position   * @param b the bias for <code>pos</code>   * @param d the direction, must be either {@link SwingConstants#NORTH},   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or   *        {@link SwingConstants#EAST}   * @param biasRet an array of {@link Position.Bias} that can hold at least   *        one element, which is filled with the bias of the return position   *        on method exit   *   * @return the document position that is (visually) nearest to the given   *         document position <code>pos</code> in the given direction   *         <code>d</code>   *   * @throws BadLocationException if <code>pos</code> is not a valid offset in   *         the document model   */  public abstract int getNextVisualPositionFrom(JTextComponent c, int pos,                                                Position.Bias b, int d,                                                Position.Bias[] biasRet)    throws BadLocationException;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -