home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JTree;
- import com.sun.java.swing.event.CellEditorListener;
- import com.sun.java.swing.tree.TreeCellEditor;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.LayoutManager;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.EventObject;
- import java.util.Vector;
-
- public class BasicTreeCellEditorContainer extends Container implements TreeCellEditor {
- protected BasicTreeCellRenderer renderer;
- protected transient Component editor;
- protected transient TreeCellEditor realEditor;
- protected transient Icon editingIcon;
- protected int editingOffset;
- protected boolean editingLeaf;
- protected boolean editingExpanded;
-
- public BasicTreeCellEditorContainer(TreeCellEditor var1, BasicTreeCellRenderer var2) {
- this.realEditor = var1;
- this.renderer = var2;
- ((Container)this).setLayout((LayoutManager)null);
- }
-
- public Object getCellEditorValue() {
- return this.realEditor.getCellEditorValue();
- }
-
- public boolean isCellEditable(EventObject var1) {
- if (this.realEditor.isCellEditable(var1)) {
- this.prepareForEditing();
- return true;
- } else {
- return false;
- }
- }
-
- public boolean shouldSelectCell(EventObject var1) {
- return this.realEditor.shouldSelectCell(var1);
- }
-
- protected void prepareForEditing() {
- ((Container)this).add(this.editor);
- if (this.renderer != null) {
- if (this.editingLeaf) {
- this.editingIcon = this.renderer.getLeafIcon();
- } else if (this.editingExpanded) {
- this.editingIcon = this.renderer.getOpenIcon();
- } else {
- this.editingIcon = this.renderer.getClosedIcon();
- }
-
- if (this.editingIcon == null) {
- this.editingOffset = 0;
- } else {
- this.editingOffset = this.renderer.getIconTextGap() + this.editingIcon.getIconWidth();
- }
- } else {
- this.editingOffset = 0;
- this.editingIcon = null;
- }
- }
-
- public boolean stopCellEditing() {
- if (this.realEditor.stopCellEditing()) {
- if (this.editor != null) {
- ((Container)this).remove(this.editor);
- }
-
- this.editingIcon = null;
- return true;
- } else {
- return false;
- }
- }
-
- public void cancelCellEditing() {
- this.realEditor.cancelCellEditing();
- if (this.editor != null) {
- ((Container)this).remove(this.editor);
- }
-
- this.editingIcon = null;
- }
-
- public void addCellEditorListener(CellEditorListener var1) {
- this.realEditor.addCellEditorListener(var1);
- }
-
- public void removeCellEditorListener(CellEditorListener var1) {
- this.realEditor.removeCellEditorListener(var1);
- }
-
- public void doLayout() {
- if (this.editor != null) {
- Dimension var1 = ((Component)this).getSize();
- this.editor.getPreferredSize();
- this.editor.setLocation(this.editingOffset, 0);
- this.editor.setBounds(this.editingOffset, 0, var1.width - this.editingOffset, var1.height);
- }
-
- }
-
- public Component getTreeCellEditorComponent(JTree var1, Object var2, boolean var3, boolean var4, boolean var5, int var6) {
- this.editingLeaf = var5;
- this.editingExpanded = var4;
- this.editor = this.realEditor.getTreeCellEditorComponent(var1, var2, var3, var4, var5, var6);
- return this;
- }
-
- public void paint(Graphics var1) {
- if (this.editingIcon != null) {
- int var2 = Math.max(0, (((Component)this).getSize().height - this.editingIcon.getIconHeight()) / 2);
- this.editingIcon.paintIcon(this, var1, 0, var2);
- }
-
- super.paint(var1);
- }
-
- public Dimension getPreferredSize() {
- if (this.editor != null) {
- Dimension var1 = this.editor.getPreferredSize();
- var1.width += this.editingOffset + 5;
- return var1;
- } else {
- return new Dimension(0, 0);
- }
- }
-
- public void requestFocus() {
- if (this.editor != null) {
- this.editor.requestFocus();
- } else {
- super.requestFocus();
- }
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- Vector var2 = new Vector();
- var1.defaultWriteObject();
- if (this.editingIcon != null && this.editingIcon instanceof Serializable) {
- var2.addElement("editingIcon");
- var2.addElement(this.editingIcon);
- }
-
- if (this.realEditor != null && this.realEditor instanceof Serializable) {
- var2.addElement("realEditor");
- var2.addElement(this.realEditor);
- }
-
- var1.writeObject(var2);
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- Vector var2 = (Vector)var1.readObject();
- int var3 = 0;
- int var4 = var2.size();
- if (var3 < var4 && var2.elementAt(var3).equals("editingIcon")) {
- ++var3;
- this.editingIcon = (Icon)var2.elementAt(var3);
- ++var3;
- }
-
- if (var3 < var4 && var2.elementAt(var3).equals("realEditor")) {
- ++var3;
- this.realEditor = (TreeCellEditor)var2.elementAt(var3);
- ++var3;
- }
-
- }
- }
-