package open.dolphin.impl.login; import java.beans.PropertyChangeListener; import open.dolphin.client.ILoginDialog; import open.dolphin.project.Project; /** * * @author Kazushi Minagawa. Digital Globe, Inc. */ public class LoginDialogProxy implements ILoginDialog { private ILoginDialog dialog; public LoginDialogProxy() { } @Override public void addPropertyChangeListener(String prop, PropertyChangeListener listener) { getDialog().addPropertyChangeListener(prop, listener); } @Override public void removePropertyChangeListener(String prop, PropertyChangeListener listener) { getDialog().removePropertyChangeListener(prop, listener); } @Override public void start() { getDialog().start(); } @Override public void close() { getDialog().close(); } @Override public void doSetting() { getDialog().doSetting(); } private ILoginDialog getDialog() { if (dialog==null) { String test = Project.getString("login.set"); if (test!=null && test.equals("multi-user")) { dialog = (ILoginDialog)create("open.dolphin.impl.login.MultiUserLoginDialog"); } else if (test!=null && test.equals("multi-facility")) { dialog = (ILoginDialog)create("open.dolphin.impl.login.MultiFacilityLoginDialog"); } else { dialog = (ILoginDialog)create("open.dolphin.impl.login.LoginDialog"); } } return dialog; } private Object create(String clsName) { try { return Class.forName(clsName).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) { ex.printStackTrace(System.err); } return null; } }