/* * Created on 03.12.2008 * */ package org.jdesktop.swingx.util; import java.awt.CardLayout; import java.awt.Component; import java.awt.Container; import java.util.ArrayList; import java.util.List; import javax.swing.JComponent; /** * Quick stateful subclass: not shareable. With convenience * card navigation methods. * */ public class XCardLayout extends CardLayout { List<String> constraints; int current; Container parent; public XCardLayout(Container parent) { super(); constraints = new ArrayList<String>(); parent.setLayout(this); this.parent = parent; } @Override public void addLayoutComponent(String name, Component comp) { constraints.add(name); super.addLayoutComponent(name, comp); } public void next() { if (constraints.size() == 0) { return; } current++; if (current > (constraints.size() -1)) { current = 0; } show(parent, constraints.get(current)); } public void previous() { } public void revalidate(String string) { ((JComponent) parent).revalidate(); parent.repaint(); } }