« 病名エディタの左矢印 | トップページ | 傷病名編集機能 »

2010年4月13日 (火)

テキストスタンプエディターの作成

Texteditor

テキストスタンプのエディターを作ってみた。

order/LTextStampEditor.java

order/EditorSetPanel.java

public class EditorSetPanel extends JPanel implements IStampEditorDialog, PropertyChangeListener, TreeSelectionListener {
 ・
 ・
//pns^ TextStampEditor は MasterPanel を含んでないので特別扱い
   private LTextStampEditor text;
   private JPanel rootPanel;
   private CardLayout rootCardLayout;

   private static String TEXT_EDITOR = "textEditor";
   private static String EDITOR_SET_PANEL = "editorSetPanel";
//pns$
 ・
 ・
  public EditorSetPanel() {
 ・
 ・
//pns^  TextStampEditor 切り替え用
    rootPanel = new JPanel();
    rootCardLayout = new CardLayout();
    rootPanel.setLayout(rootCardLayout);
//pns$
    initComponent();
  }
 ・
 ・
  public void show(String entity) {
 ・
 ・
//pns^  Text Editor 対応 : entity が text の時は,root card を切り替える
    if (entity.equals(IInfoModel.ENTITY_TEXT)) {
      rootCardLayout.show(rootPanel, TEXT_EDITOR);
      curEditor = text;
      curEditor.addPropertyChangeListener(StampEditorDialog.VALIDA_DATA_PROP, this);
      curEditor.start();
    } else {
      rootCardLayout.show(rootPanel, EDITOR_SET_PANEL);
//pns$
 ・
 ・
  private void initComponent() {
 ・
 ・
//pns^  MasterPanel の有無で CardLayout で切り替え可能にする
    text = new LTextStampEditor(this);
    rootPanel.add(center, EDITOR_SET_PANEL);
    rootPanel.add(text, TEXT_EDITOR);
    this.setLayout(new BorderLayout(0, 0));
    this.add(rootPanel, BorderLayout.CENTER);
    //this.setLayout(new BorderLayout(0, 0));
    //this.add(center, BorderLayout.CENTER);
//pns$
    this.add(btnPanel, BorderLayout.EAST);
 ・
 ・

client/UserStampBox.java

 ・
 ・
@Override
public boolean isHasEditor(int index) {
//pns   return (index == textIndex || index == pathIndex || index == orcaIndex) ? false : true;
  return (index == pathIndex || index == orcaIndex) ? false : true;
}

@Override
public void setHasNoEditorEnabled(boolean b) {
//pns   this.setEnabledAt(textIndex, b);
  this.setEnabledAt(pathIndex, b);
  this.setEnabledAt(orcaIndex, b);
}

client/StampBoxPlugin.java

class TabChangeListener implements ChangeListener {
 ・
 ・        
  // スタンプメーカ起動中の時
  // 選択されたタブに対応するエディタを表示する
  int index = userBox.getSelectedIndex();
  StampTree tree = userBox.getStampTree(index);
//pns  if (editors != null && (!tree.getEntity().equals(IInfoModel.ENTITY_TEXT)) ) {
  if (editors != null) {
    editors.show(tree.getEntity());
 ・
 ・

« 病名エディタの左矢印 | トップページ | 傷病名編集機能 »

OpenDolphin」カテゴリの記事