/* Copyright 2003, Carnegie Mellon, All Rights Reserved */
package edu.cmu.minorthird.util.gui;
import java.awt.GridBagLayout;
import javax.swing.JSplitPane;
/**
* Two viewers, arranged side-by-side or top-and-bottom.
*
* @author William cohen
*/
abstract public class SplitViewer extends Viewer{
static final long serialVersionUID=20081125L;
protected JSplitPane splitPane;
protected Viewer viewer1=null,viewer2=null;
public SplitViewer(){
super();
}
public SplitViewer(Viewer viewer1,Viewer viewer2){
super();
setSubViews(viewer1,viewer2);
}
public void setVertical(){
splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
}
public void setHorizontal(){
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
}
/** Called at creation time. */
@Override
protected void initialize(){
setLayout(new GridBagLayout());
splitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
splitPane.setResizeWeight(0.50);
add(splitPane,fillerGBC());
}
public void setSubViews(Viewer viewer1,Viewer viewer2){
this.viewer2=viewer2;
this.viewer1=viewer1;
if(splitPane.getOrientation()==JSplitPane.VERTICAL_SPLIT){
splitPane.setTopComponent(viewer1);
splitPane.setBottomComponent(viewer2);
viewer1.setSuperView(this,"top");
viewer2.setSuperView(this,"bottom");
}else{
splitPane.setLeftComponent(viewer1);
splitPane.setRightComponent(viewer2);
viewer1.setSuperView(this,"left");
viewer2.setSuperView(this,"right");
}
}
@Override
public void clearContent(){
if(viewer1!=null&&viewer2!=null){
viewer1.clearContent();
viewer2.clearContent();
}
}
}