package open.dolphin.letter; import java.awt.FlowLayout; import javax.swing.JPanel; import javax.swing.JScrollPane; import open.dolphin.client.Chart; import open.dolphin.client.ChartImpl; import open.dolphin.client.ClientContext; import open.dolphin.client.DocumentViewer; import open.dolphin.delegater.LetterDelegater; import open.dolphin.helper.DBTask; import open.dolphin.infomodel.DocInfoModel; import open.dolphin.infomodel.LetterModule; /** * @author Kazushi Minagawa, Digital Globe, Inc. */ public class MedicalCertificateViewer extends MedicalCertificateImpl implements DocumentViewer { private long docPK; @Override public void start() { stateMgr = new LetterStateMgr(this); this.enter(); } @Override public void historyPeriodChanged() { stateMgr.processEmptyEvent(); getContext().showDocument(0); } @Override public void showDocuments(DocInfoModel[] docs, JScrollPane scroller) { if (docs == null || docs.length == 0) { stateMgr.processEmptyEvent(); return; } DocInfoModel docInfo = docs[0]; docPK = docInfo.getDocPk(); if (docPK == 0L) { return; } LetterGetTask task = new LetterGetTask(getContext(), docPK, scroller); task.execute(); } public void modifyKarte() { //minagawa^ LSC Test if (docPK==0L) { return; } DBTask task = new DBTask<LetterModule,Void>(getContext()) { @Override protected Object doInBackground() throws Exception { LetterDelegater ddl = new LetterDelegater(); LetterModule letter = ddl.getLetter(docPK); return letter; } @Override protected void succeeded(LetterModule lm) { if (lm==null) { return; } MedicalCertificateImpl editor = new MedicalCertificateImpl(); editor.setModel(lm); editor.setModify(true); editor.setContext(getContext()); editor.start(); ChartImpl chart = (ChartImpl)getContext(); StringBuilder sb = new StringBuilder(); sb.append(ClientContext.getMyBundle(MedicalCertificateViewer.class).getString("modify")).append("(").append(editor.getTitle()).append(")"); chart.addChartDocument(editor, sb.toString()); } }; task.execute(); //minagawa$ } //s.oh^ 2014/04/03 文書の複製 public void copyDocument() { if (docPK==0L) { return; } DBTask task = new DBTask<LetterModule,Void>(getContext()) { @Override protected Object doInBackground() throws Exception { LetterDelegater ddl = new LetterDelegater(); LetterModule letter = ddl.getLetter(docPK); letter.setId(0); letter.setLinkId(0); return letter; } @Override protected void succeeded(LetterModule lm) { if (lm==null) { return; } MedicalCertificateImpl editor = new MedicalCertificateImpl(); editor.setModel(lm); editor.setModify(true); editor.setContext(getContext()); editor.start(); ChartImpl chart = (ChartImpl)getContext(); StringBuilder sb = new StringBuilder(); sb.append(ClientContext.getMyBundle(MedicalCertificateViewer.class).getString("dupuricate")).append("(").append(editor.getTitle()).append(")"); chart.addChartDocument(editor, sb.toString()); } }; task.execute(); } //s.oh$ class LetterGetTask extends DBTask<LetterModule, Void> { private final long letterPk; private final JScrollPane scroller; public LetterGetTask(Chart app, long letterPk, JScrollPane scroller) { super(app); this.letterPk = letterPk; this.scroller = scroller; } @Override protected LetterModule doInBackground() throws Exception { LetterDelegater ddl = new LetterDelegater(); LetterModule letter = ddl.getLetter(letterPk); return letter; } @Override protected void succeeded(LetterModule letter) { model = letter; modelToView(model); setEditables(false); JPanel p = new JPanel(new FlowLayout(FlowLayout.CENTER)); p.add(view); scroller.setViewportView(p); stateMgr.processCleanEvent(); getContext().showDocument(0); } } }