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

@ -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

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