ValidationListener für Parent-App beim Anlegen einer neuen Application Instanz.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2275 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-07-26 14:20:28 +00:00
parent a4cd0245ef
commit ca50661b68
8 changed files with 38 additions and 12 deletions

View File

@ -67,4 +67,9 @@ public class BookmarksAppManager extends AbstractApplicationManager<Bookmarks> {
} }
} }
public boolean allowRoot() {
return false;
}
} }

View File

@ -39,7 +39,9 @@ public abstract class AbstractApplicationManager<T extends Application> implemen
* @return The standard form for creating new instances of an application. * @return The standard form for creating new instances of an application.
*/ */
public Form getApplicationCreateForm() { public Form getApplicationCreateForm() {
return new ApplicationCreateForm<T>(getApplication()); return new ApplicationCreateForm<T>(getApplication(), allowRoot());
} }
public abstract boolean allowRoot();
} }

View File

@ -33,6 +33,7 @@ import com.arsdigita.bebop.form.Option;
import com.arsdigita.bebop.form.SingleSelect; import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.form.TextArea; import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.form.TextField; import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.NotEmptyValidationListener;
import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.bebop.parameters.StringParameter;
@ -75,7 +76,7 @@ public class ApplicationCreateForm<T extends Application> extends Form {
private final TextArea applicationDesc; private final TextArea applicationDesc;
private final SaveCancelSection saveCancelSection; private final SaveCancelSection saveCancelSection;
public ApplicationCreateForm(final Class<T> appClass) { public ApplicationCreateForm(final Class<T> appClass, final boolean allowRoot) {
super(FORM_NAME); super(FORM_NAME);
@ -109,6 +110,12 @@ public class ApplicationCreateForm<T extends Application> extends Form {
} }
}); });
if (!allowRoot) {
parentApp.addValidationListener(new NotNullValidationListener());
parentApp.addValidationListener(new NotEmptyValidationListener());
}
} catch (TooManyListenersException ex) { } catch (TooManyListenersException ex) {
throw new UncheckedWrapperException(ex); throw new UncheckedWrapperException(ex);
} }

View File

@ -77,5 +77,5 @@ public interface ApplicationManager<T extends Application> {
* {@code null} if the is a singleton. * {@code null} if the is a singleton.
*/ */
Form getApplicationCreateForm(); Form getApplicationCreateForm();
} }

View File

@ -46,6 +46,8 @@ public class FaqAppManager extends AbstractApplicationManager<Faq> {
return container; return container;
} }
public boolean allowRoot() {
return false;
}
} }

View File

@ -39,11 +39,16 @@ public class ForumApplicationManager extends AbstractApplicationManager<Forum> {
final ApplicationInstanceAwareContainer container = new ApplicationInstanceAwareContainer(); final ApplicationInstanceAwareContainer container = new ApplicationInstanceAwareContainer();
final BoxPanel panel = new BoxPanel(); final BoxPanel panel = new BoxPanel();
panel.add(new Label(new GlobalizedMessage("forum.ui.admin.no_settings", "com.arsdigita.forum.ui.ForumResources"))); panel.add(
new Label(new GlobalizedMessage("forum.ui.admin.no_settings", "com.arsdigita.forum.ui.ForumResources")));
container.add(panel); container.add(panel);
return container; return container;
} }
public boolean allowRoot() {
return false;
}
} }

View File

@ -241,16 +241,16 @@ public class SciInstitutePublicationsTab implements GenericOrgaUnitTab {
orgaunit.getContentBundle().getID().toString()); orgaunit.getContentBundle().getID().toString());
departmentsQuery.setParameter("assocType", departmentsQuery.setParameter("assocType",
SciInstituteDepartmentsStep.ASSOC_TYPE); SciInstituteDepartmentsStep.ASSOC_TYPE);
while (departmentsQuery.next()) { while (departmentsQuery.next()) {
orgaunitIds.add(departmentsQuery.get("orgaunitId").toString()); orgaunitIds.add(departmentsQuery.get("orgaunitId").toString());
} }
} else { } else {
orgaunitIds.add(orgaunit.getID().toString()); orgaunitIds.add(orgaunit.getID().toString());
} }
publicationBundlesQuery.setParameter("orgaunitIds", orgaunitIds); publicationBundlesQuery.setParameter("orgaunitIds", orgaunitIds);
final StringBuilder filterBuilder = new StringBuilder(); final StringBuilder filterBuilder = new StringBuilder();
while (publicationBundlesQuery.next()) { while (publicationBundlesQuery.next()) {
if (filterBuilder.length() > 0) { if (filterBuilder.length() > 0) {
filterBuilder.append(','); filterBuilder.append(',');

View File

@ -44,4 +44,9 @@ public class WebLogAppManager extends AbstractApplicationManager<WebLogApplicati
return container; return container;
} }
public boolean allowRoot() {
return false;
}
} }