package open.dolphin.client;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import javax.swing.SwingConstants;
import open.dolphin.helper.SpringUtilities;
import open.dolphin.infomodel.SimpleAddressModel;
import open.dolphin.project.Project;
import open.dolphin.util.AgeCalculater;
/**
*
* @author Kazushi Minagawa.
*/
public class BasicInfoInspector {
private JPanel basePanel; // このクラスのパネル
private JLabel nameLabel;
private JLabel addressLabel;
private Color maleColor;
private Color femaleColor;
private Color unknownColor;
// Context このインスペクタの親コンテキスト
private final ChartImpl context;
/**
* BasicInfoInspectorオブジェクトを生成する。
* @param context
*/
public BasicInfoInspector(ChartImpl context) {
this.context = context;
initComponent();
update();
}
/**
* レイウアトのためにこのインスペクタのコンテナパネルを返す。
* @return コンテナパネル
*/
public JPanel getPanel() {
return basePanel;
}
/**
* 患者の基本情報を表示する。
*/
private void update() {
StringBuilder sb = new StringBuilder();
sb.append(context.getPatient().getFullName());
sb.append(" ");
String age = AgeCalculater.getAgeAndBirthday(context.getPatient().getBirthday(), Project.getInt("ageToNeedMonth", 6));
sb.append(age);
nameLabel.setText(sb.toString());
SimpleAddressModel address = context.getPatient().getSimpleAddressModel();
if (address != null) {
String adr = address.getAddress();
if (adr != null) {
adr = adr.replaceAll(" ", " ");
}
addressLabel.setText(adr);
} else {
addressLabel.setText(" ");
}
//String gender = context.getPatient().getGenderDesc();
String gender = context.getPatient().getGender();
gender = gender!=null ? gender.toLowerCase() : "u";
Color color;
java.util.ResourceBundle bundle = ClientContext.getBundle();
if (gender.startsWith("m")) {
color = maleColor;
} else if (gender.startsWith("f")) {
color = femaleColor;
} else {
color = unknownColor;
}
nameLabel.setBackground(color);
addressLabel.setBackground(color);
basePanel.setBackground(color);
}
/**
* GUI コンポーネントを初期化する。
*/
private void initComponent() {
// 性別によって変えるパネルのバックグランドカラー
maleColor = GUIConst.BASIC_INFO_MALE_COLOR;
femaleColor = GUIConst.BASIC_INFO_FEMALE_COLOR;
unknownColor = GUIConst.BASIC_INFO_UNKNOW_COLOR;
Color foreground = GUIConst.BASIC_INFO_FOREGROUND;
nameLabel = new JLabel(" ");
nameLabel.setHorizontalAlignment(SwingConstants.CENTER);
nameLabel.setForeground(foreground);
nameLabel.setOpaque(true);
nameLabel.setMinimumSize(new Dimension(271, 20));
nameLabel.setMaximumSize(new Dimension(271, 20));
nameLabel.setMaximumSize(new Dimension(271, 20));
addressLabel = new JLabel(" ");
addressLabel.setHorizontalAlignment(SwingConstants.CENTER);
addressLabel.setForeground(foreground);
addressLabel.setOpaque(true);
addressLabel.setMinimumSize(new Dimension(271, 20));
addressLabel.setMaximumSize(new Dimension(271, 20));
addressLabel.setMaximumSize(new Dimension(271, 20));
// basePanel = new JPanel(new BorderLayout(0, 2));
// basePanel.setMinimumSize(new Dimension(271, 40));
// basePanel.setMaximumSize(new Dimension(271, 40));
// basePanel.setPreferredSize(new Dimension(271, 40));
// basePanel.add(nameLabel, BorderLayout.NORTH);
// basePanel.add(addressLabel, BorderLayout.SOUTH);
basePanel = new JPanel(new SpringLayout());
basePanel.add(nameLabel);
basePanel.add(addressLabel);
SpringUtilities.makeCompactGrid(basePanel, 2, 1, 0, 0, 0, 0);
}
}