///* // * Bibliothek - DockingFrames // * Library built on Java/Swing, allows the user to "drag and drop" // * panels containing any Swing-Component the developer likes to add. // * // * Copyright (C) 2012 Benjamin Sigg // * // * This library is free software; you can redistribute it and/or // * modify it under the terms of the GNU Lesser General Public // * License as published by the Free Software Foundation; either // * version 2.1 of the License, or (at your option) any later version. // * // * This library is distributed in the hope that it will be useful, // * but WITHOUT ANY WARRANTY; without even the implied warranty of // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // * Lesser General Public License for more details. // * // * You should have received a copy of the GNU Lesser General Public // * License along with this library; if not, write to the Free Software // * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // * // * Benjamin Sigg // * benjamin_sigg@gmx.ch // * CH - Switzerland // */ //package bibliothek.gui.dock.station.split.layout; // //import bibliothek.gui.dock.SplitDockStation; //import bibliothek.gui.dock.station.split.DefaultSplitLayoutManager; //import bibliothek.gui.dock.station.split.Leaf; //import bibliothek.gui.dock.station.split.Node; //import bibliothek.gui.dock.station.split.Root; //import bibliothek.gui.dock.station.split.SplitLayoutManager; //import bibliothek.gui.dock.station.split.SplitNode; //import bibliothek.util.ClientOnly; // ///** // * This {@link SplitLayoutManager} offers some inner classes to copy and easily modify the // * tree of {@link SplitNode}s that make up the layout of a {@link SplitDockStation}.<br> // * This class is intended to be used by clients, it is not used by the framework itself. It only adds // * new ways to access data that already exists, it does not change any behavior. // * @author Benjamin Sigg // * @param <R> the type that is used to describe custom data for a {@link Root} // * @param <N> the type that is used to describe custom data for a {@link Node} // * @param <L> the type that is used to describe custom data for a {@link Leaf} // */ //@ClientOnly //public class CustomizeableSplitLayoutmanager<R, N, L> extends DefaultSplitLayoutManager { // // public CustomizeableRoot toTree( SplitDockStation station ){ // // } // // private CustomizeableRoot toRoot( Root root ){ // } // // private CustomizeableNode toNode( Node node ){ // // } // // private CustomizeableLeaf toLeaf( Leaf leaf ){ // // } // // /** // * A wrapper around a {@link SplitNode}, offers storage for subclasses of {@link CustomizeableSplitLayoutmanager} // * @param <D> the type of the data that is stored in this node // */ // public abstract class CustomizeableSplitNode<D> { // private D data; // // /** // * Gets the {@link SplitNode} which was used to create this node. // * @return the original node // */ // public abstract SplitNode getOrigin(); // // /** // * Gets the custom data that was set by a client. // * @return the custom data, can be <code>null</code> // */ // public D getData(){ // return data; // } // // /** // * Sets custom data, can be used by a client. It is up to the client to decide what kind of information should // * be stored. // * @param data the data to store, can be <code>null</code> // */ // public void setData( D data ){ // this.data = data; // } // } // // /** // * A wrapper around a {@link Root}. // */ // public class CustomizeableRoot extends CustomizeableSplitNode<R> { // private Root root; // private CustomizeableSplitNode<?> child; // // private CustomizeableRoot( Root root, CustomizeableSplitNode<?> child ){ // this.root = root; // } // // /** // * Gets the only child of this root, either a {@link CustomizeableNode} or a {@link CustomizeableLeaf}. // * @return the child, can be <code>null</code> // */ // public CustomizeableSplitNode<?> getChild(){ // return child; // } // // @Override // public Root getOrigin(){ // return root; // } // } // // /** // * A wrapper around a {@link Node} // */ // public class CustomizeableNode extends CustomizeableSplitNode<N> { // private Node node; // // private CustomizeableNode( Node node ){ // this.node = node; // } // // @Override // public SplitNode getOrigin(){ // return node; // } // } // // /** // * A wrapper around a {@link Leaf} // */ // public class CustomizeableLeaf extends CustomizeableSplitNode<L> { // private Leaf leaf; // // private CustomizeableLeaf( Leaf leaf ){ // this.leaf = leaf; // } // // @Override // public SplitNode getOrigin(){ // return leaf; // } // } //}