package circdesignagui; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.border.EtchedBorder; public abstract class CircDesigNA_BasicView extends JPanel{ public CircDesigNA_BasicView(CircDesigNA_Context context, JComponent inner, String title, String backText, final String backDetailed, String forwardText, final String forwardDetailed) { Box layout = Box.createVerticalBox(); Box buttonBox = Box.createHorizontalBox(); //buttonBox.setBackground(context.getThemedApplet().THEMECOL0); //buttonBox.setOpaque(true); final JButton pageDescription = new JButton("<html></html>"){{ setEnabled(false); }}; buttonBox.add(new JButton("\u2190 "+backText){{ addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { back(); } }); addMouseListener(new MouseAdapter() { public void mouseExited(MouseEvent e) { pageDescription.setText("<html></html>"); } public void mouseEntered(MouseEvent e) { pageDescription.setText("<html>"+backDetailed+"</html>"); } }); }}); buttonBox.add(pageDescription); pageDescription.setHorizontalAlignment(SwingConstants.CENTER); buttonBox.add(new JButton(forwardText+" \u2192"){{addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { forward(); } }); addMouseListener(new MouseAdapter() { public void mouseExited(MouseEvent e) { pageDescription.setText(""); } public void mouseEntered(MouseEvent e) { pageDescription.setText("<html>"+forwardDetailed+"</html>"); } }); }}); layout.add(buttonBox); inner.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)); layout.add(context.getThemedApplet().skinGroup(inner, title)); setLayout(new BorderLayout()); add(layout); validate(); } public abstract void back(); public abstract void forward(); }