import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TiteledEntryField extends JPanel {
public JPanel Header = null;
public JPanel Body = null;
public JLabel TitelText = null;
public JLabel TitelIcon = null;
public JLabel iconField = null;
private Dimension activeSize = this.getSize();
private boolean isActive = true;
private ImageIcon icon = null;
/**
* This is the default constructor
*/
public TiteledEntryField() {
super();
initialize();
}
public TiteledEntryField(ImageIcon icon) {
super();
initialize();
setIcon(icon);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setLayout(null);
this.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
this.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
this.add(getHeader(), null);
this.add(getBody(), null);
this.setSize(200, 120);
}
public void setIcon(ImageIcon icon) {
this.icon = icon;
if (Header != null)
Header.add(getIconField(), java.awt.BorderLayout.WEST);
}
/**
* This method initializes Header
*
* @return javax.swing.JPanel
*/
private JPanel getHeader() {
if (Header == null) {
Header = new JPanel();
Header.setLayout(new BorderLayout());
Header.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
Header.setPreferredSize(new java.awt.Dimension(14,20));
Header.setToolTipText("Titel");
Header.setBackground(new java.awt.Color(153,204,255));
Header.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
Header.setBounds(new java.awt.Rectangle(2,2,196,20));
Header.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
Header.add(getTitelText(), java.awt.BorderLayout.CENTER);
Header.add(getTitelIcon(), java.awt.BorderLayout.EAST);
}
return Header;
}
/**
* This method initializes Body
*
* @return javax.swing.JPanel
*/
private JPanel getBody() {
if (Body == null) {
FlowLayout flowLayout = new FlowLayout();
flowLayout.setAlignment(java.awt.FlowLayout.LEFT);
Body = new JPanel();
Body.setBackground(java.awt.Color.white);
Body.setBounds(new java.awt.Rectangle(2,22,196,96));
Body.setLayout(flowLayout);
Body.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
}
return Body;
}
private JLabel getTitelText(){
if (TitelText == null){
TitelText = new JLabel();
TitelText.setText("Der Titel");
TitelText.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 11));
TitelText.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
TitelText.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
TitelText.setVerticalAlignment(javax.swing.SwingConstants.CENTER);
TitelText.setVerticalTextPosition(javax.swing.SwingConstants.CENTER);
TitelText.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
TitelText.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
headerClick(e);
}
});
}
return TitelText;
}
public JLabel getIconField() {
if (iconField == null && this.icon != null){
iconField = new JLabel();
iconField.setIcon(this.icon);
iconField.addMouseListener(new java.awt.event.MouseAdapter(){
public void mouseClicked(java.awt.event.MouseEvent e){
headerClick(e);
}
});
}
return iconField;
}
private JLabel getTitelIcon(){
if (TitelIcon == null){
TitelIcon = new JLabel(new ImageIcon("pic/window_fullscreen.png"));
TitelIcon.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 11));
TitelIcon.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
TitelIcon.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
TitelIcon.setVerticalAlignment(javax.swing.SwingConstants.CENTER);
TitelIcon.setVerticalTextPosition(javax.swing.SwingConstants.CENTER);
TitelIcon.setToolTipText("Eingabefeld einklappen");
TitelIcon.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
TitelIcon.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
headerClick(e);
}
});
}
return TitelIcon;
}
protected void setActive(){
if (!isActive()){
isActive = true;
this.Body.setBackground(java.awt.Color.white);
this.setPreferredSize(activeSize);
this.setSize(activeSize);
this.Body.setVisible(true);
this.TitelIcon.setIcon(new ImageIcon("pic/window_fullscreen.png"));
this.TitelIcon.setToolTipText("Eingabefeld einklappen");
}
}
protected void setInactive(){
if (isActive()){
isActive = false;
this.Body.setBackground(new java.awt.Color(245, 245, 245));
this.Body.setVisible(false);
activeSize = this.getSize();
this.setPreferredSize(new Dimension(this.Header.getSize().width + 4, this.Header.getSize().height + 4));
this.setSize(new Dimension(this.Header.getSize().width + 4, this.Header.getSize().height + 4));
this.TitelIcon.setIcon(new ImageIcon("pic/window_nofullscreen.png"));
this.TitelIcon.setToolTipText("Eingabefeld ausklappen");
}
}
public void setSize(Dimension d){
setSize(d.width, d.width);
}
public void setSize(int width, int height){
super.setSize(width, height);
this.Body.setSize(width, (height - 20));
this.Body.setBounds(new java.awt.Rectangle(2,22,(width - 4),(height - 24)));
}
public void headerClick(java.awt.event.MouseEvent e){
if (isActive()) this.setInactive();
else this.setActive();
e.setSource("headerclick");
dispatchEvent(e);
}
public boolean isActive() {
return isActive;
}
}