Avoiding NPE if there is no pane for managing instances of an application type yet (Ticket #2031)
git-svn-id: https://svn.libreccm.org/ccm/trunk@2528 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
d3aa1fdb1a
commit
8aa2a7ea21
|
|
@ -135,3 +135,4 @@ ui.admin.user.userinfo.name=Name:
|
||||||
ui.admin.user.userinfo.screenname=Username:
|
ui.admin.user.userinfo.screenname=Username:
|
||||||
ui.admin.user.userinfo.primaryemail=Email:
|
ui.admin.user.userinfo.primaryemail=Email:
|
||||||
ui.admin.groups.name=Name:
|
ui.admin.groups.name=Name:
|
||||||
|
ui.admin.applications.placeholder=There is no administration panel for instances of this application type yet.
|
||||||
|
|
|
||||||
|
|
@ -135,3 +135,4 @@ ui.admin.user.userinfo.name=Name:
|
||||||
ui.admin.user.userinfo.screenname=Benutzername:
|
ui.admin.user.userinfo.screenname=Benutzername:
|
||||||
ui.admin.user.userinfo.primaryemail=E-Mail:
|
ui.admin.user.userinfo.primaryemail=E-Mail:
|
||||||
ui.admin.groups.name=Name:
|
ui.admin.groups.name=Name:
|
||||||
|
ui.admin.applications.placeholder=F\u00fcr Applikationen dieses Typs gibt es noch keine Verwaltungsoberfl\u00e4che.
|
||||||
|
|
|
||||||
|
|
@ -135,3 +135,4 @@ ui.admin.user.userinfo.name=
|
||||||
ui.admin.user.userinfo.screenname=
|
ui.admin.user.userinfo.screenname=
|
||||||
ui.admin.user.userinfo.primaryemail=
|
ui.admin.user.userinfo.primaryemail=
|
||||||
ui.admin.groups.name=
|
ui.admin.groups.name=
|
||||||
|
ui.admin.applications.placeholder=
|
||||||
|
|
|
||||||
|
|
@ -121,3 +121,4 @@ ui.admin.user.userinfo.name=
|
||||||
ui.admin.user.userinfo.screenname=
|
ui.admin.user.userinfo.screenname=
|
||||||
ui.admin.user.userinfo.primaryemail=
|
ui.admin.user.userinfo.primaryemail=
|
||||||
ui.admin.groups.name=
|
ui.admin.groups.name=
|
||||||
|
ui.admin.applications.placeholder=
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ package com.arsdigita.ui.admin;
|
||||||
|
|
||||||
import com.arsdigita.bebop.BoxPanel;
|
import com.arsdigita.bebop.BoxPanel;
|
||||||
import com.arsdigita.bebop.Form;
|
import com.arsdigita.bebop.Form;
|
||||||
|
import com.arsdigita.bebop.Label;
|
||||||
import com.arsdigita.bebop.Page;
|
import com.arsdigita.bebop.Page;
|
||||||
import com.arsdigita.bebop.PageState;
|
import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.SimpleContainer;
|
import com.arsdigita.bebop.SimpleContainer;
|
||||||
|
|
@ -27,6 +28,7 @@ import com.arsdigita.bebop.Tree;
|
||||||
import com.arsdigita.bebop.event.ChangeEvent;
|
import com.arsdigita.bebop.event.ChangeEvent;
|
||||||
import com.arsdigita.bebop.event.ChangeListener;
|
import com.arsdigita.bebop.event.ChangeListener;
|
||||||
import com.arsdigita.toolbox.ui.LayoutPanel;
|
import com.arsdigita.toolbox.ui.LayoutPanel;
|
||||||
|
import com.arsdigita.ui.admin.applications.ApplicationInstanceAwareContainer;
|
||||||
import com.arsdigita.ui.admin.applications.ApplicationInstancePane;
|
import com.arsdigita.ui.admin.applications.ApplicationInstancePane;
|
||||||
import com.arsdigita.ui.admin.applications.ApplicationManager;
|
import com.arsdigita.ui.admin.applications.ApplicationManager;
|
||||||
import com.arsdigita.ui.admin.applications.BaseApplicationPane;
|
import com.arsdigita.ui.admin.applications.BaseApplicationPane;
|
||||||
|
|
@ -49,10 +51,10 @@ import java.util.Map;
|
||||||
public class ApplicationsAdministrationTab extends LayoutPanel implements AdminConstants {
|
public class ApplicationsAdministrationTab extends LayoutPanel implements AdminConstants {
|
||||||
|
|
||||||
private final Tree applicationTree;
|
private final Tree applicationTree;
|
||||||
private final Map<String, BaseApplicationPane> appPanes =
|
private final Map<String, BaseApplicationPane> appPanes
|
||||||
new HashMap<String, BaseApplicationPane>();
|
= new HashMap<String, BaseApplicationPane>();
|
||||||
private final Map<String, ApplicationInstancePane> instancePanes =
|
private final Map<String, ApplicationInstancePane> instancePanes
|
||||||
new HashMap<String, ApplicationInstancePane>();
|
= new HashMap<String, ApplicationInstancePane>();
|
||||||
private final BoxPanel appPanel;
|
private final BoxPanel appPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -72,7 +74,6 @@ public class ApplicationsAdministrationTab extends LayoutPanel implements AdminC
|
||||||
|
|
||||||
setLeft(applicationTree);
|
setLeft(applicationTree);
|
||||||
|
|
||||||
|
|
||||||
final ApplicationTypeCollection applicationTypes = ApplicationType.
|
final ApplicationTypeCollection applicationTypes = ApplicationType.
|
||||||
retrieveAllApplicationTypes();
|
retrieveAllApplicationTypes();
|
||||||
|
|
||||||
|
|
@ -140,7 +141,7 @@ public class ApplicationsAdministrationTab extends LayoutPanel implements AdminC
|
||||||
getApplicationObjectType());
|
getApplicationObjectType());
|
||||||
final ApplicationInstancePane instPane;
|
final ApplicationInstancePane instPane;
|
||||||
if (manager == null) {
|
if (manager == null) {
|
||||||
instPane = new ApplicationInstancePane(null);
|
instPane = new ApplicationInstancePane(new Placeholder());
|
||||||
} else {
|
} else {
|
||||||
instPane = new ApplicationInstancePane(managementForms.get(applicationType.
|
instPane = new ApplicationInstancePane(managementForms.get(applicationType.
|
||||||
getApplicationObjectType()).
|
getApplicationObjectType()).
|
||||||
|
|
@ -212,5 +213,17 @@ public class ApplicationsAdministrationTab extends LayoutPanel implements AdminC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class Placeholder extends ApplicationInstanceAwareContainer {
|
||||||
|
|
||||||
|
public Placeholder() {
|
||||||
|
super();
|
||||||
|
final Label label = new Label(GlobalizationUtil.globalize(
|
||||||
|
"ui.admin.applications.placeholder"));
|
||||||
|
add(label);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,9 @@ import com.arsdigita.ui.admin.GlobalizationUtil;
|
||||||
import com.arsdigita.web.Application;
|
import com.arsdigita.web.Application;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This pane shows informations about a specific instance of a multi instance application, like title, parent
|
* This pane shows informations about a specific instance of a multi instance application, like
|
||||||
* application (if any) and the path. Also it contains a form for editing settings specific to the instance.
|
* title, parent application (if any) and the path. Also it contains a form for editing settings
|
||||||
|
* specific to the instance.
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
|
|
@ -64,6 +65,7 @@ public class ApplicationInstancePane extends SegmentedPanel {
|
||||||
"ui.admin.MultiInstancePane.manage.no_instance_admin_pane_found",
|
"ui.admin.MultiInstancePane.manage.no_instance_admin_pane_found",
|
||||||
new String[]{application.getApplicationType().getApplicationObjectType()}));
|
new String[]{application.getApplicationType().getApplicationObjectType()}));
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
addSegment(new Label(GlobalizationUtil.globalize(
|
addSegment(new Label(GlobalizationUtil.globalize(
|
||||||
|
|
@ -82,4 +84,5 @@ public class ApplicationInstancePane extends SegmentedPanel {
|
||||||
appAdminPane.setAppInstance(application);
|
appAdminPane.setAppInstance(application);
|
||||||
modelBuilder.setApplication(application);
|
modelBuilder.setApplication(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue