package open.dolphin.impl.img; import java.beans.PropertyChangeListener; import javax.swing.ImageIcon; import javax.swing.JPanel; import open.dolphin.client.Chart; import open.dolphin.client.ChartDocument; import open.dolphin.client.ClientContext; import open.dolphin.project.Project; /** * ImageBrowser plugin の proxy class. * * @author Kazushi Minagawa. Digital Globe, Inc. */ public class ImageBrowserProxy implements ChartDocument { private ChartDocument browser; public ImageBrowserProxy() { } @Override public void start() { getBrowser().start(); enter(); } @Override public void stop() { getBrowser().stop(); } @Override public String getTitle() { return getBrowser().getTitle(); } @Override public void setTitle(String title) { getBrowser().setTitle(title); } @Override public ImageIcon getIconInfo(Chart ctx) { return getBrowser().getIconInfo(ctx); } @Override public Chart getContext() { return getBrowser().getContext(); } @Override public void setContext(Chart ctx) { getBrowser().setContext(ctx); } @Override public JPanel getUI() { return getBrowser().getUI(); } @Override public void enter() { getBrowser().enter(); } @Override public void save() { getBrowser().save(); } @Override public void print() { getBrowser().print(); } @Override public boolean isDirty() { return getBrowser().isDirty(); } @Override public void setDirty(boolean dirty) { getBrowser().setDirty(dirty); } private ChartDocument getBrowser() { if (browser==null) { // Projectに指定されているブラウザを生成する String name = Project.getString("image.browser.name"); boolean win = ClientContext.isWin(); if (win && name!=null && name.equals("unitea")) { browser = (ChartDocument)create("open.dolphin.impl.img.UniteaBrowser"); } else if (win && name!=null && name.equals("tfs")) { browser = (ChartDocument)create("open.dolphin.impl.img.TFSBrowser"); //s.oh^ FCR連携 // FCR連携 } else if (name!=null && name.equals("fcr")) { browser = (ChartDocument)create("open.dolphin.impl.img.FCRBrowser"); //s.oh$ } else { browser = (ChartDocument)create("open.dolphin.impl.img.DefaultBrowser"); } } return browser; } private Object create(String clsName) { try { return Class.forName(clsName).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) { ex.printStackTrace(System.err); } return null; } @Override public void addPropertyChangeListener(String prop, PropertyChangeListener l) { getBrowser().addPropertyChangeListener(prop, l); } @Override public void removePropertyChangeListener(String prop, PropertyChangeListener l) { getBrowser().removePropertyChangeListener(prop, l); } @Override public boolean isChartDocDidSave() { return getBrowser().isChartDocDidSave(); } @Override public void setChartDocDidSave(boolean b) { getBrowser().setChartDocDidSave(b); } }