/* * Copyright 2011 Mark McKay * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package automenta.vivisect.swing.dock; /** * * @author kitfox */ public interface DockingContainer { /** * Divide this container in two * * @param child The child component which is being split. Must be a child of * this container. * @param content Content to add to the newly created side of the split * @param right If true, content will be placed on the right or bottom of * the new split * @param vertical If true, split will divide the panel into a top and * bottom. Otherwise will divide left and right. * @return The newly created region. */ public DockingRegionSplit split(DockingChild child, DockingContent content, boolean right, boolean vertical); /** * Indicates that oldChild has become invalid and should be replaced with * newChild. If newChild is null, indicates oldChild should be removed. * * @param oldChild Child to be removed * @param newChild Child to replace oldChild with. If null, oldChild is * simply removed */ public void join(DockingChild oldChild, DockingChild newChild); public DockingPathRecord buildPath(DockingChild dockChild, DockingPathRecord childPath); public DockingRegionContainer getContainerRoot(); }