private void initGUI(final GUIInfo info) { // Prepare a value manager that will include all forms spanned in each // tab vm = new ValuesManager(); // Create all the tabs each one for a specific setup step tabs = new TabSet(); tabs.setWidth(500); tabs.setHeight(250); Tab registrationTab = setupRegistration(vm); Tab repositoryTab = setupRepository(vm); Tab databaseTab = setupDatabase(vm); Tab languageTab = setupLanguage(vm); Tab smtpTab = setupSmtp(vm); tabs.setTabs(registrationTab, repositoryTab, databaseTab, languageTab, smtpTab); // This is the button used to confirm each step submit = new IButton(); submit.setTitle(I18N.message("next")); submit.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { onSubmit(info); } }); // Prepare the heading panel with Logo and Title // Prepare the logo image to be shown inside the login form Label header = new Label(I18N.message("setup")); header.setStyleName("setupHeader"); header.setIcon(Util.brandUrl("logo.png")); header.setIconWidth(205); header.setIconHeight(40); header.setHeight(45); // Prepare a panel to layout setup components VLayout layout = new VLayout(); layout.setHeight(500); layout.setWidth(400); layout.setMembersMargin(5); layout.addMember(header); layout.addMember(tabs); layout.addMember(submit); // Panel for horizontal centering VLayout vPanel = new VLayout(); vPanel.setDefaultLayoutAlign(Alignment.CENTER); vPanel.setWidth100(); vPanel.setHeight(300); vPanel.addMember(layout); RootPanel.get().add(vPanel); // Remove the loading frame RootPanel.getBodyElement().removeChild(RootPanel.get("loadingWrapper").getElement()); }
@Override public String format(Object value, ListGridRecord record, int rowNum, int colNum) { if (value == null) return null; if (value instanceof Long) return value.toString() + " " + (((Long) value).longValue() > 1 ? I18N.message("ddays") : I18N.message("day")); else if (value instanceof Integer) return value.toString() + " " + (((Integer) value).intValue() > 1 ? I18N.message("ddays") : I18N.message("day")); else return value.toString(); }
/** Prepares the SMTP form */ private Tab setupSmtp(final ValuesManager vm) { // Prepare the SMTP connection tab Tab smtpTab = new Tab(); smtpTab.setTitle(I18N.message("smtpserver")); final DynamicForm smtpForm = new DynamicForm(); smtpForm.setDisabled(true); smtpForm.setID("smtpForm"); smtpForm.setTitleOrientation(TitleOrientation.TOP); smtpForm.setValuesManager(vm); smtpTab.setPane(smtpForm); TextItem smtpHost = ItemFactory.newTextItem(SMTP_HOST, "host", null); smtpHost.setValue("localhost"); smtpHost.setWrapTitle(false); IntegerItem smtpPort = ItemFactory.newIntegerItem(SMTP_PORT, "port", null); smtpPort.setValue(25); smtpPort.setWrapTitle(false); TextItem smtpUsername = ItemFactory.newTextItem(SMTP_USERNAME, "username", null); smtpUsername.setWrapTitle(false); PasswordItem smtpPassword = new PasswordItem(); smtpPassword.setTitle(I18N.message("password")); smtpPassword.setName(SMTP_PASSWORD); smtpPassword.setWrapTitle(false); BooleanItem smtpSecureAuth = new BooleanItem(); smtpSecureAuth.setTitle(I18N.message("secureauth")); smtpSecureAuth.setName(SMTP_SECURE_AUTH); smtpSecureAuth.setWrapTitle(false); smtpSecureAuth.setDefaultValue(false); SelectItem smtpConnectionSecurity = new SelectItem(); smtpConnectionSecurity.setTitle(I18N.message("connectionsecurity")); smtpConnectionSecurity.setName("smtpConnectionSecurity"); smtpConnectionSecurity.setDefaultValue(Constants.SMTP_SECURITY_NONE); smtpConnectionSecurity.setWrapTitle(false); LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>(); valueMap.put(Constants.SMTP_SECURITY_NONE, I18N.message("none")); valueMap.put(Constants.SMTP_SECURITY_SSL, I18N.message("ssl")); valueMap.put(Constants.SMTP_SECURITY_TLS, I18N.message("tls")); valueMap.put(Constants.SMTP_SECURITY_TLS_IF_AVAILABLE, I18N.message("tlsavailable")); smtpConnectionSecurity.setValueMap(valueMap); TextItem smtpSender = ItemFactory.newEmailItem(SMTP_SENDER, "sender", false); smtpSender.setWrapTitle(false); smtpSender.setValue("*****@*****.**"); smtpForm.setFields( smtpHost, smtpPort, smtpUsername, smtpPassword, smtpSender, smtpConnectionSecurity, smtpSecureAuth); return smtpTab; }
private DashboardPanel() { userTab = new Tab(I18N.message("user")); userTab.setID("user"); userTab.setPane(new UserDashboard()); tagsTab = new Tab(I18N.message("tags")); tagsTab.setID("tags"); tagsTab.setPane(new TagsDashboard()); messagesTab = new Tab(I18N.message("messages")); messagesTab.setID("messages"); messagesTab.setPane(new MessagesPanel()); subscriptionsTab = new Tab(I18N.message("subscriptions")); subscriptionsTab.setID("subscriptions"); subscriptionsTab.setPane(new SubscriptionsPanel()); workflowTab = new Tab(I18N.message("workflow")); workflowTab.setID("workflow"); workflowTab.setPane(new WorkflowDashboard()); tabSet.addTab(userTab); if (Feature.visible(Feature.TAGS)) { tabSet.addTab(tagsTab); if (!Feature.enabled(Feature.TAGS)) tagsTab.setPane(new TagsDashboard()); } if (Feature.visible(Feature.MESSAGES)) { tabSet.addTab(messagesTab); if (!Feature.enabled(Feature.MESSAGES)) messagesTab.setPane(new FeatureDisabled()); } if (Feature.visible(Feature.AUDIT)) { tabSet.addTab(subscriptionsTab); if (!Feature.enabled(Feature.AUDIT)) subscriptionsTab.setPane(new FeatureDisabled()); } if (Feature.visible(Feature.WORKFLOW)) { tabSet.addTab(workflowTab); if (!Feature.enabled(Feature.WORKFLOW)) workflowTab.setPane(new FeatureDisabled()); } setMembers(tabSet); Session.get().getUser().addObserver(this); }
/** Prepares the language form */ private Tab setupLanguage(final ValuesManager vm) { Tab languageTab = new Tab(); languageTab.setTitle(I18N.message(LANGUAGE)); SelectItem languageItem = ItemFactory.newLanguageSelector(LANGUAGE, false, true); languageItem.setTitle(I18N.message("defaultlang")); languageItem.setRequired(true); languageItem.setValue(I18N.getLocale()); final DynamicForm languageForm = new DynamicForm(); languageForm.setID("languageForm"); languageForm.setValuesManager(vm); languageForm.setFields(languageItem); languageForm.setDisabled(true); languageTab.setPane(languageForm); return languageTab; }
/** Prepares the repository form */ private Tab setupRepository(final ValuesManager vm) { // Prepare the tab used to configure the repository where documents and // other data will be stored Tab repositoryTab = new Tab(); repositoryTab.setTitle(I18N.message("repository")); final DynamicForm repositoryForm = new DynamicForm(); repositoryForm.setID("repositoryForm"); repositoryForm.setValuesManager(vm); TextItem repositoryItem = ItemFactory.newTextItem(REPOSITORY_FOLDER, "repofolder", null); repositoryItem.setWidth(200); repositoryItem.setRequired(true); repositoryItem.setWrapTitle(false); repositoryItem.setDefaultValue(getDefaultFolder()); repositoryForm.setFields(repositoryItem); repositoryForm.setDisabled(true); repositoryTab.setPane(repositoryForm); return repositoryTab; }
/** Prepares the registration form */ private Tab setupRegistration(final ValuesManager vm) { Tab registrationTab = new Tab(); registrationTab.setTitle(I18N.message("registration")); TextItem regName = ItemFactory.newTextItem(REG_NAME, "name", null); regName.setWrapTitle(false); TextItem regOrganization = ItemFactory.newTextItem(REG_ORGANIZATION, "organization", null); regOrganization.setWrapTitle(false); TextItem regWebsite = ItemFactory.newTextItem(REG_WEBSITE, "website", null); regWebsite.setWrapTitle(false); TextItem regEmail = ItemFactory.newEmailItem(REG_EMAIL, "email", false); regEmail.setWrapTitle(false); final DynamicForm regForm = new DynamicForm(); regForm.setID("regForm"); regForm.setValuesManager(vm); regForm.setFields(regName, regEmail, regOrganization, regWebsite); registrationTab.setPane(regForm); return registrationTab; }
private void onSubmit(final GUIInfo info) { vm.validate(); Tab tab = tabs.getSelectedTab(); int tabIndex = tabs.getSelectedTabNumber(); DynamicForm form = (DynamicForm) tab.getPane(); if (form.hasErrors()) { } else { if (step == 4) { if (!vm.validate()) SC.warn("invalidfields"); SetupInfo data = new SetupInfo(); data.setDbDriver(vm.getValueAsString(DB_DRIVER)); data.setDbUrl(vm.getValueAsString(DB_URL)); data.setDbUsername(vm.getValueAsString(DB_USERNAME)); data.setDbPassword(vm.getValueAsString(DB_PASSWORD)); data.setDbEngine(vm.getValueAsString(DB_ENGINE)); data.setDbType(vm.getValueAsString(DB_TYPE)); data.setLanguage(vm.getValueAsString(LANGUAGE)); data.setSmtpHost(vm.getValueAsString(SMTP_HOST)); data.setSmtpPort((Integer) vm.getValues().get(SMTP_PORT)); data.setSmtpUsername(vm.getValueAsString(SMTP_USERNAME)); data.setSmtpPassword(vm.getValueAsString(SMTP_PASSWORD)); data.setSmtpSender(vm.getValueAsString(SMTP_SENDER)); data.setSmtpSecureAuth((Boolean) vm.getValues().get(SMTP_SECURE_AUTH)); data.setSmtpSecuryConntection(vm.getValueAsString(SMTP_SECURITY_CONNECTION)); data.setRepositoryFolder(vm.getValueAsString(REPOSITORY_FOLDER)); data.setDbDialect(engines.get(data.getDbEngine())[3]); data.setDbValidationQuery(engines.get(data.getDbEngine())[4]); data.setRegEmail(vm.getValueAsString(REG_EMAIL)); data.setRegName(vm.getValueAsString(REG_NAME)); data.setRegOrganization(vm.getValueAsString(REG_ORGANIZATION)); data.setRegWebsite(vm.getValueAsString(REG_WEBSITE)); if (data.getDbType().equals(I18N.message(INTERNAL))) { data.setDbEngine("Hsqldb"); data.setDbDriver("org.hsqldb.jdbcDriver"); data.setDbUrl( ("jdbc:hsqldb:" + data.getRepositoryFolder() + "/db/").replaceAll("//", "/")); data.setDbUsername("sa"); data.setDbPassword(""); data.setDbValidationQuery("SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS"); data.setDbDialect("org.hibernate.dialect.HSQLDialect"); } SetupServiceAsync setupService = (SetupServiceAsync) GWT.create(SetupService.class); setupService.setup( data, new AsyncCallback<Void>() { @Override public void onFailure(Throwable caught) { SC.warn(caught.getMessage()); submit.setDisabled(false); } @Override public void onSuccess(Void arg) { SC.say( I18N.message("installationperformed"), I18N.message("installationend", info.getProductName()), new BooleanCallback() { @Override public void execute(Boolean value) { Util.redirect(Util.contextPath() + "frontend.jsp"); } }); submit.setDisabled(false); } }); submit.setDisabled(true); // Clear an eventually saved documents list grid settings. Offline.put("doclist", ""); } else { // Go to the next tab and enable the contained panel tabs.selectTab(tabIndex + 1); tabs.getSelectedTab().getPane().setDisabled(false); if (step < tabs.getSelectedTabNumber()) step++; if (step == 4) submit.setTitle(I18N.message("setup")); } } }
/** Prepares the database tab */ private Tab setupDatabase(final ValuesManager vm) { // Prepare the map with all database engines engines.put( MYSQL, new String[] { "MySQL 5.x", "com.mysql.jdbc.Driver", "jdbc:mysql://<server>[,<failoverhost>][<:3306>]/<database>", "org.hibernate.dialect.MySQLDialect", "SELECT 1" }); engines.put( "PostgreSQL", new String[] { "PostgreSQL 9.x", "org.postgresql.Driver", "jdbc:postgresql:[<//server>[<:5432>/]]<database>", "org.hibernate.dialect.PostgreSQLDialect", "SELECT 1" }); engines.put( ORACLE, new String[] { "Oracle 10g/11g", "oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@<server>[<:1521>]:<sid>", "org.hibernate.dialect.Oracle10gDialect", "SELECT 1 FROM DUAL" }); engines.put( SQLSERVER, new String[] { "SQL Server 2005/2008", "net.sourceforge.jtds.jdbc.Driver", "jdbc:jtds:sqlserver://<server>[:<1433>]/<database>;instance=<instance>", "org.hibernate.dialect.SQLServerDialect", "SELECT 1" }); Tab databaseTab = new Tab(); databaseTab.setTitle(I18N.message("database")); final DynamicForm databaseForm = new DynamicForm(); databaseForm.setWidth(450); databaseForm.setID("database"); databaseForm.setValuesManager(vm); databaseForm.setDisabled(true); RadioGroupItem dbType = new RadioGroupItem(); dbType.setName(DB_TYPE); dbType.setWrapTitle(false); dbType.setRequired(true); dbType.setVertical(false); dbType.setValueMap(I18N.message(INTERNAL), I18N.message("external")); dbType.setValue(I18N.message(INTERNAL)); dbType.setRedrawOnChange(true); dbType.setTitle(I18N.message("dbtype")); // The database engine, if the External db was chosen SelectItem dbEngine = new SelectItem(); dbEngine.setTitle(I18N.message("dbengine")); dbEngine.setWrapTitle(false); dbEngine.setVisible(false); dbEngine.setName(DB_ENGINE); dbEngine.setDefaultValue(MYSQL); LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>(); for (String engine : engines.keySet()) { valueMap.put(engine, engines.get(engine)[0]); } dbEngine.setValueMap(valueMap); dbEngine.setShowIfCondition( new FormItemIfFunction() { public boolean execute(FormItem item, Object value, DynamicForm form) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); RequiredIfValidator ifValidator = new RequiredIfValidator(); ifValidator.setExpression( new RequiredIfFunction() { public boolean execute(FormItem formItem, Object value) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); dbEngine.setValidators(ifValidator); dbEngine.addChangeHandler( new ChangeHandler() { public void onChange(ChangeEvent event) { String selectedItem = (String) event.getValue(); databaseForm.getField(DB_DRIVER).setValue(engines.get(selectedItem)[1]); databaseForm.getField(DB_URL).setValue(engines.get(selectedItem)[2]); } }); // The driver for the external DB TextItem dbDriver = ItemFactory.newTextItem(DB_DRIVER, "driverclass", null); dbDriver.setVisible(false); dbDriver.setDefaultValue(engines.get(MYSQL)[1]); dbDriver.setWrapTitle(false); dbDriver.setShowIfCondition( new FormItemIfFunction() { public boolean execute(FormItem item, Object value, DynamicForm form) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); dbDriver.setValidators(ifValidator); // The connection URL to external DB TextItem dbUrl = ItemFactory.newTextItem(DB_URL, "connectionurl", null); dbUrl.setWidth(200); dbUrl.setVisible(false); dbUrl.setDefaultValue(engines.get(MYSQL)[2]); dbUrl.setWrapTitle(false); dbUrl.setShowIfCondition( new FormItemIfFunction() { public boolean execute(FormItem item, Object value, DynamicForm form) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); dbUrl.setValidators(ifValidator); // The username to access the external DB TextItem dbUsername = ItemFactory.newTextItem(DB_USERNAME, "username", null); dbUsername.setVisible(false); dbUsername.setWrapTitle(false); dbUsername.setShowIfCondition( new FormItemIfFunction() { public boolean execute(FormItem item, Object value, DynamicForm form) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); // The password to access the external DB PasswordItem dbPassword = new PasswordItem(); dbPassword.setVisible(false); dbPassword.setTitle(I18N.message("password")); dbPassword.setName(DB_PASSWORD); dbPassword.setWrapTitle(false); dbPassword.setShowIfCondition( new FormItemIfFunction() { public boolean execute(FormItem item, Object value, DynamicForm form) { return !I18N.message(INTERNAL).equals(databaseForm.getValue(DB_TYPE)); } }); databaseForm.setFields(dbType, dbEngine, dbDriver, dbUrl, dbUsername, dbPassword); databaseTab.setPane(databaseForm); return databaseTab; }
public ProxyPanel(GUIParameter[] parameters) { setWidth100(); setMembersMargin(10); setMargin(30); setHeight(400); TabSet tabs = new TabSet(); tabs.setWidth(380); tabs.setHeight(250); Tab tab = new Tab(); tab.setTitle(I18N.message("proxy")); tabs.setTabs(tab); DynamicForm proxySettingsForm = new DynamicForm(); proxySettingsForm.setWidth(300); proxySettingsForm.setColWidths(1, "*"); proxySettingsForm.setValuesManager(vm); proxySettingsForm.setTitleOrientation(TitleOrientation.LEFT); List<FormItem> items = new ArrayList<FormItem>(); for (GUIParameter f : parameters) { if (f.getName().equals("password")) { PasswordItem item = ItemFactory.newPasswordItem(f.getName(), f.getName(), f.getValue()); item.setRequired(true); item.setWidth(250); items.add(item); } else if (f.getName().equals("port")) { IntegerItem item = ItemFactory.newValidateIntegerItem( f.getName(), f.getName(), Integer.parseInt(f.getValue()), 1, null); item.setRequired(true); item.setWidth(250); items.add(item); } else { TextItem item = ItemFactory.newTextItem(f.getName(), f.getName(), f.getValue()); item.setRequired(true); item.setWidth(250); items.add(item); } } proxySettingsForm.setItems(items.toArray(new FormItem[0])); IButton save = new IButton(); save.setTitle(I18N.message("save")); save.addClickHandler( new ClickHandler() { @SuppressWarnings("unchecked") public void onClick(ClickEvent event) { Map<String, Object> values = (Map<String, Object>) vm.getValues(); if (vm.validate()) { List<GUIParameter> proxySettings = new ArrayList<GUIParameter>(); for (String name : values.keySet()) { GUIParameter proxyParam = new GUIParameter(name, values.get(name).toString()); proxySettings.add(proxyParam); } service.saveProxySettings( Session.get().getSid(), proxySettings.toArray(new GUIParameter[0]), new AsyncCallback<Void>() { @Override public void onFailure(Throwable caught) { Log.serverError(caught); } @Override public void onSuccess(Void result) { Log.info(I18N.message("settingssaved"), null); } }); } } }); tab.setPane(proxySettingsForm); setMembers(tabs, save); }
private void refresh() { form.clearValues(); form.clearErrors(false); if (form != null) form.destroy(); if (formsContainer.contains(form)) formsContainer.removeChild(form); form = new DynamicForm(); form.setNumCols(2); form.setTitleOrientation(TitleOrientation.TOP); TextItem include = ItemFactory.newTextItem("include", "include", account.getIncludes()); include.addChangedHandler(changedHandler); TextItem exclude = ItemFactory.newTextItem("exclude", "exclude", account.getExcludes()); exclude.addChangedHandler(changedHandler); TextItem folder = ItemFactory.newTextItem("mailfolder", "mailfolder", account.getMailFolder()); folder.addChangedHandler(changedHandler); SelectItem format = ItemFactory.newSelectItem("format", "format"); LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); map.put("0", I18N.message("multiplefiles")); map.put("1", I18N.message("singleeml")); format.setValueMap(map); format.addChangedHandler(changedHandler); format.setValue(Integer.toString(account.getFormat())); CheckboxItem deleteFomMailbox = new CheckboxItem(); deleteFomMailbox.setName("delete"); deleteFomMailbox.setTitle(I18N.message("deletefrommailbox")); deleteFomMailbox.setRedrawOnChange(true); deleteFomMailbox.setWidth(50); deleteFomMailbox.addChangedHandler(changedHandler); deleteFomMailbox.setValue(account.isDeleteFromMailbox()); final DateItem startDate = ItemFactory.newDateItem("startdate", "earliestdate"); startDate.addChangedHandler(changedHandler); startDate.setValue(account.getStartDate()); startDate.setUseMask(false); startDate.setShowPickerIcon(true); startDate.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE); startDate.addKeyPressHandler( new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { if ("backspace".equals(event.getKeyName().toLowerCase()) || "delete".equals(event.getKeyName().toLowerCase())) { startDate.clearValue(); startDate.setValue((Date) null); changedHandler.onChanged(null); } else { changedHandler.onChanged(null); } } }); form.setItems(folder, format, include, exclude, startDate, deleteFomMailbox); formsContainer.addMember(form); }
@Override public String format(Object value, ListGridRecord record, int rowNum, int colNum) { if (value == null) return null; return I18N.message((String) value); }