Fixed potenial cast error in ImageBrowser

git-svn-id: https://svn.libreccm.org/ccm/trunk@5174 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2017-12-21 08:39:21 +00:00
parent a0b89a168d
commit 2f79a0e8e6
2 changed files with 163 additions and 125 deletions

View File

@ -113,7 +113,8 @@ public class ImageBrowser extends Table {
* Construct a new ImageBrowser with default mode. * Construct a new ImageBrowser with default mode.
* *
* @param builder the {@link ImageBrowserModelBuilder} that will supply this * @param builder the {@link ImageBrowserModelBuilder} that will supply this
* component with its {@link ImageBrowserModel} during each request * component with its {@link ImageBrowserModel} during each
* request
*/ */
public ImageBrowser(ImageBrowserModelBuilder b) { public ImageBrowser(ImageBrowserModelBuilder b) {
@ -124,8 +125,9 @@ public class ImageBrowser extends Table {
* Construct a new ImageBrowser table with requested mode. * Construct a new ImageBrowser table with requested mode.
* *
* @param builder the {@link ImageBrowserModelBuilder} that will supply this * @param builder the {@link ImageBrowserModelBuilder} that will supply this
* component with its {@link ImageBrowserModel} during each request * component with its {@link ImageBrowserModel} during each
* @param mode the component mode (see {@link ImageComponent}) * request
* @param mode the component mode (see {@link ImageComponent})
*/ */
public ImageBrowser(ImageBrowserModelBuilder b, int mode) { public ImageBrowser(ImageBrowserModelBuilder b, int mode) {
@ -135,37 +137,37 @@ public class ImageBrowser extends Table {
m_mode = mode; m_mode = mode;
setThumbnailSize(CMS.getConfig().getImageBrowserThumbnailMaxWidth(), setThumbnailSize(CMS.getConfig().getImageBrowserThumbnailMaxWidth(),
CMS.getConfig().getImageBrowserThumbnailMaxHeight()); CMS.getConfig().getImageBrowserThumbnailMaxHeight());
/* Add columns and column header to the yet empty table */ /* Add columns and column header to the yet empty table */
TableColumnModel model = getColumnModel(); TableColumnModel model = getColumnModel();
model.add(new TableColumn( model.add(new TableColumn(
THUMB, THUMB,
new Label(GlobalizationUtil.globalize( new Label(GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.header_thumb") "cms.contentasset.image.ui.table.header_thumb")
))); )));
model.add(new TableColumn( model.add(new TableColumn(
NAME, NAME,
new Label(GlobalizationUtil.globalize( new Label(GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.header_name") "cms.contentasset.image.ui.table.header_name")
))); )));
model.add(new TableColumn( model.add(new TableColumn(
SIZE, SIZE,
new Label(GlobalizationUtil.globalize( new Label(GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.header_size") "cms.contentasset.image.ui.table.header_size")
))); )));
model.add(new TableColumn( model.add(new TableColumn(
TYPE, TYPE,
new Label(GlobalizationUtil.globalize( new Label(GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.header_type") "cms.contentasset.image.ui.table.header_type")
))); )));
model.add(new TableColumn( model.add(new TableColumn(
SELECT, SELECT,
new Label(GlobalizationUtil.globalize( new Label(GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.header_action_select") "cms.contentasset.image.ui.table.header_action_select")
))); )));
model.add(new TableColumn( // Temporary not used due to consistency model.add(new TableColumn( // Temporary not used due to consistency
DELETE, null // probs with images probably in use DELETE, null // probs with images probably in use
// new Label(GlobalizationUtil.globalize( // new Label(GlobalizationUtil.globalize(
// "cms.contentasset.image.ui.table.header_action_delete")) // "cms.contentasset.image.ui.table.header_action_delete"))
)); ));
@ -229,7 +231,7 @@ public class ImageBrowser extends Table {
* is clicked. Child classes should override the linkClicked method. * is clicked. Child classes should override the linkClicked method.
*/ */
public static abstract class LinkActionListener public static abstract class LinkActionListener
extends TableActionAdapter { extends TableActionAdapter {
/** /**
* *
@ -240,10 +242,10 @@ public class ImageBrowser extends Table {
int c = e.getColumn().intValue(); int c = e.getColumn().intValue();
if (c == SELECT) { if (c == SELECT) {
linkClicked(e.getPageState(), linkClicked(e.getPageState(),
new BigDecimal((String) e.getRowKey())); new BigDecimal((String) e.getRowKey()));
} else if (c == DELETE) { } else if (c == DELETE) {
deleteClicked(e.getPageState(), deleteClicked(e.getPageState(),
new BigDecimal((String) e.getRowKey())); new BigDecimal((String) e.getRowKey()));
} }
} }
@ -260,12 +262,12 @@ public class ImageBrowser extends Table {
@Override @Override
public Component getComponent(Table table, PageState state, Object value, public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key, boolean isSelected, Object key,
int row, int column) { int row, int column) {
ImageAsset a = (ImageAsset) value; ImageAsset a = (ImageAsset) value;
Double aspectRatio = a.getWidth().doubleValue() / a.getHeight() Double aspectRatio = a.getWidth().doubleValue() / a.getHeight()
.doubleValue(); .doubleValue();
Double width; Double width;
Double height; Double height;
@ -281,14 +283,14 @@ public class ImageBrowser extends Table {
String url = Service.getImageURL(a); String url = Service.getImageURL(a);
// Sets url paramter to resize the images server-side // Sets url paramter to resize the images server-side
String resizeParam = "&maxWidth=" + new Double(m_thumbSize String resizeParam = "&maxWidth=" + new Double(m_thumbSize
.getWidth()).intValue() .getWidth()).intValue()
+ "&maxHeight=" + "&maxHeight="
+ new Double(m_thumbSize + new Double(m_thumbSize
.getHeight()) .getHeight())
.intValue(); .intValue();
Image img = new Image(URL.getDispatcherPath() + url + resizeParam, Image img = new Image(URL.getDispatcherPath() + url + resizeParam,
a.getName()); a.getName());
img.setBorder("0"); img.setBorder("0");
// final Double width = m_thumbSize.getWidth(); // final Double width = m_thumbSize.getWidth();
@ -324,13 +326,13 @@ public class ImageBrowser extends Table {
*/ */
@Override @Override
public Component getComponent(Table table, PageState state, Object value, public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key, boolean isSelected, Object key,
int row, int column) { int row, int column) {
if (m_mode == ImageComponent.SELECT_IMAGE if (m_mode == ImageComponent.SELECT_IMAGE
|| m_mode == ImageComponent.ATTACH_IMAGE) { || m_mode == ImageComponent.ATTACH_IMAGE) {
return super.getComponent(table, state, value, return super.getComponent(table, state, value,
isSelected, key, row, column); isSelected, key, row, column);
} }
// return new Label(""); // this variant is deprecated! // return new Label(""); // this variant is deprecated!
@ -363,8 +365,8 @@ public class ImageBrowser extends Table {
*/ */
@Override @Override
public Component getComponent(Table table, PageState state, Object value, public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key, boolean isSelected, Object key,
int row, int column) { int row, int column) {
// Only show delete link in admin mode // Only show delete link in admin mode
if (m_mode == ImageComponent.ADMIN_IMAGES) { if (m_mode == ImageComponent.ADMIN_IMAGES) {
@ -373,23 +375,23 @@ public class ImageBrowser extends Table {
// SecurityManager sm = Utilities.getSecurityManager(state); // SecurityManager sm = Utilities.getSecurityManager(state);
SecurityManager sm = CMS.getSecurityManager(state); SecurityManager sm = CMS.getSecurityManager(state);
if (sm.canAccess(state.getRequest(), if (sm.canAccess(state.getRequest(),
SecurityManager.DELETE_IMAGES)) { SecurityManager.DELETE_IMAGES)) {
try { try {
//vorher war ImageAsset
ReusableImageAsset asset = (ReusableImageAsset) DomainObjectFactory
.newInstance(new OID(
ImageAsset.BASE_DATA_OBJECT_TYPE,
(BigDecimal) key));
canDelete = !asset.isInUse(); final ImageAsset asset = (ImageAsset) DomainObjectFactory
.newInstance(new OID(
ImageAsset.BASE_DATA_OBJECT_TYPE,
key));
if (asset instanceof ReusableImageAsset) {
//XXX Find a new way to figure out, if this image is used by any CI so we can final ReusableImageAsset reusable
// decide if it can be deleted = (ReusableImageAsset) asset;
// if (!GenericArticleImageAssociation.imageHasAssociation(asset)) { canDelete = !reusable.isInUse();
// canDelete = true; } else {
// } canDelete = false;
} catch (DataObjectNotFoundException e) { }
// can't find asset, can't delete it } catch (DataObjectNotFoundException ex) {
throw new RuntimeException(ex);
} }
} }
@ -397,29 +399,33 @@ public class ImageBrowser extends Table {
// can delete image because it's not in use // can delete image because it's not in use
if (canDelete) { if (canDelete) {
return super.getComponent(table, return super.getComponent(table,
state, state,
value, value,
isSelected, isSelected,
key, key,
row, row,
column); column);
} }
} }
//get all items that uses the image: //get all items that uses the image:
try { try {
ReusableImageAsset asset = (ReusableImageAsset) DomainObjectFactory final ImageAsset asset = (ImageAsset) DomainObjectFactory
.newInstance(new OID( .newInstance(new OID(
ImageAsset.BASE_DATA_OBJECT_TYPE, ImageAsset.BASE_DATA_OBJECT_TYPE,
(BigDecimal) key)); key));
List list = asset.getImageUsers(); if (asset instanceof ReusableImageAsset) {
final List list = ((ReusableImageAsset) asset)
.getImageUsers();
return createLabel(list, state); return createLabel(list, state);
} else {
} catch (DataObjectNotFoundException e) { return new Label("");
// can't find asset, can't delete it }
} catch (DataObjectNotFoundException ex) {
throw new RuntimeException(ex);
} }
return new Label("image is in use"); // return new Label("image is in use");
} }
} }
@ -427,8 +433,9 @@ public class ImageBrowser extends Table {
/** /**
* creates a BoxPanel with links to the items that are using the image * creates a BoxPanel with links to the items that are using the image
* *
* @param list list with the itemIDs * @param list list with the itemIDs
* @param state PageState * @param state PageState
*
* @return * @return
*/ */
private BoxPanel createLabel(List list, PageState state) { private BoxPanel createLabel(List list, PageState state) {
@ -461,16 +468,17 @@ public class ImageBrowser extends Table {
* creates the link to an item of the list. * creates the link to an item of the list.
* *
* @param state PageState * @param state PageState
* @param list list with itemIDs * @param list list with itemIDs
* @param index * @param index
*
* @return * @return
*/ */
private Link createLink(PageState state, List list, int index) { private Link createLink(PageState state, List list, int index) {
ContentItem item = (ContentItem) DomainObjectFactory ContentItem item = (ContentItem) DomainObjectFactory
.newInstance(new OID( .newInstance(new OID(
ContentItem.BASE_DATA_OBJECT_TYPE, ContentItem.BASE_DATA_OBJECT_TYPE,
new BigDecimal((Integer) list.get(index)))); new BigDecimal((Integer) list.get(index))));
ContentSection section = item.getContentSection(); ContentSection section = item.getContentSection();
ItemResolver resolver = section.getItemResolver(); ItemResolver resolver = section.getItemResolver();
@ -481,12 +489,12 @@ public class ImageBrowser extends Table {
} }
Link link = new Link( Link link = new Link(
"used by " + displayName, "used by " + displayName,
resolver.generateItemURL( resolver.generateItemURL(
state, state,
(item.getDraftVersion()), (item.getDraftVersion()),
section, section,
(item.getDraftVersion()).getVersion())); (item.getDraftVersion()).getVersion()));
return link; return link;
} }
@ -495,7 +503,7 @@ public class ImageBrowser extends Table {
* TableModelBuilder * TableModelBuilder
*/ */
private static class BuilderAdapter extends LockableImpl private static class BuilderAdapter extends LockableImpl
implements TableModelBuilder { implements TableModelBuilder {
private ImageBrowserModelBuilder m_builder; private ImageBrowserModelBuilder m_builder;
@ -506,7 +514,7 @@ public class ImageBrowser extends Table {
@Override @Override
public TableModel makeModel(Table t, PageState s) { public TableModel makeModel(Table t, PageState s) {
return new ImageModelAdapter( return new ImageModelAdapter(
m_builder.makeModel((ImageBrowser) t, s)); m_builder.makeModel((ImageBrowser) t, s));
} }
@Override @Override
@ -552,7 +560,7 @@ public class ImageBrowser extends Table {
if (name.length() > 32) { if (name.length() > 32) {
return name.substring(0, 31); return name.substring(0, 31);
}else{ } else {
return name; return name;
} }
@ -589,15 +597,15 @@ public class ImageBrowser extends Table {
// Due to current design has to be a string! Localisation // Due to current design has to be a string! Localisation
// works here nevertheless. // works here nevertheless.
return (String) GlobalizationUtil.globalize( return (String) GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.link_select") "cms.contentasset.image.ui.table.link_select")
.localize(); .localize();
case ImageBrowser.DELETE: case ImageBrowser.DELETE:
// Due to current design has to be a string! Localisation // Due to current design has to be a string! Localisation
// works here nevertheless. // works here nevertheless.
return (String) GlobalizationUtil.globalize( return (String) GlobalizationUtil.globalize(
"cms.contentasset.image.ui.table.link_delete") "cms.contentasset.image.ui.table.link_delete")
.localize(); .localize();
default: default:
return null; return null;

View File

@ -18,8 +18,24 @@
*/ */
package com.arsdigita.cms.ui.category; package com.arsdigita.cms.ui.category;
import com.arsdigita.bebop.*; import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.event.*; import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.List;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.Tree;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.event.ChangeEvent;
import com.arsdigita.bebop.event.ChangeListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.event.PrintListener;
import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.CategorizedCollection; import com.arsdigita.categorization.CategorizedCollection;
@ -38,9 +54,13 @@ import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.toolbox.ui.ActionGroup; import com.arsdigita.toolbox.ui.ActionGroup;
import com.arsdigita.toolbox.ui.Section; import com.arsdigita.toolbox.ui.Section;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
import java.math.BigDecimal; import java.math.BigDecimal;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import static com.arsdigita.web.Web.*;
/** /**
* A split pane for the Category Administration UI. * A split pane for the Category Administration UI.
* *
@ -50,9 +70,10 @@ import org.apache.log4j.Logger;
public final class CategoryAdminPane extends BaseAdminPane { public final class CategoryAdminPane extends BaseAdminPane {
public static final String CONTEXT_SELECTED = "sel_context"; public static final String CONTEXT_SELECTED = "sel_context";
private static final String DEFAULT_USE_CONTEXT = private static final String DEFAULT_USE_CONTEXT
CategoryUseContextModelBuilder.DEFAULT_USE_CONTEXT; = CategoryUseContextModelBuilder.DEFAULT_USE_CONTEXT;
private static final Logger s_log = Logger.getLogger(CategoryAdminPane.class); private static final Logger s_log = Logger
.getLogger(CategoryAdminPane.class);
private final SingleSelectionModel m_contextModel; private final SingleSelectionModel m_contextModel;
private final Tree m_categoryTree; private final Tree m_categoryTree;
private final SingleSelectionModel m_model; private final SingleSelectionModel m_model;
@ -62,16 +83,18 @@ public final class CategoryAdminPane extends BaseAdminPane {
public CategoryAdminPane() { public CategoryAdminPane() {
super(); super();
m_contextModel = new UseContextSelectionModel(new StringParameter(CONTEXT_SELECTED)); m_contextModel = new UseContextSelectionModel(new StringParameter(
CONTEXT_SELECTED));
/* Left column */ /* Left column */
/* Use context section */ /* Use context section */
List list = new List(new CategoryUseContextModelBuilder()); List list = new List(new CategoryUseContextModelBuilder());
list.setSelectionModel(m_contextModel); list.setSelectionModel(m_contextModel);
list.addChangeListener(new ContextSelectionListener()); list.addChangeListener(new ContextSelectionListener());
/* Category tree section */ /* Category tree section */
m_categoryTree = new BaseTree(new CategoryTreeModelBuilder(m_contextModel)); m_categoryTree = new BaseTree(new CategoryTreeModelBuilder(
m_contextModel));
m_categoryTree.addChangeListener(new SelectionListener()); m_categoryTree.addChangeListener(new SelectionListener());
m_model = m_categoryTree.getSelectionModel(); m_model = m_categoryTree.getSelectionModel();
@ -87,7 +110,7 @@ public final class CategoryAdminPane extends BaseAdminPane {
if (CMS.getConfig().getAllowCategoryCreateUseContext()) { if (CMS.getConfig().getAllowCategoryCreateUseContext()) {
ActionLink addContextAction = new ActionLink(new Label(gz( ActionLink addContextAction = new ActionLink(new Label(gz(
"cms.ui.category.add_use_context"))); "cms.ui.category.add_use_context")));
Form addContextForm = new AddUseContextForm(m_contextModel); Form addContextForm = new AddUseContextForm(m_contextModel);
getBody().add(addContextForm); getBody().add(addContextForm);
getBody().connect(addContextAction, addContextForm); getBody().connect(addContextAction, addContextForm);
@ -115,8 +138,9 @@ public final class CategoryAdminPane extends BaseAdminPane {
setEdit(gz("cms.ui.category.edit"), setEdit(gz("cms.ui.category.edit"),
new CategoryEditForm(m_parent, m_category)); new CategoryEditForm(m_parent, m_category));
setDelete(new DeleteLink(new Label(gz("cms.ui.category.delete"))), new DeleteForm( setDelete(new DeleteLink(new Label(gz("cms.ui.category.delete"))),
new SimpleContainer())); new DeleteForm(
new SimpleContainer()));
setIntroPane(new Label(gz("cms.ui.category.intro"))); setIntroPane(new Label(gz("cms.ui.category.intro")));
setItemPane(new CategoryItemPane(m_model, setItemPane(new CategoryItemPane(m_model,
@ -129,7 +153,6 @@ public final class CategoryAdminPane extends BaseAdminPane {
//m_contextList = new List(new ContextListModelBuilder()); //m_contextList = new List(new ContextListModelBuilder());
//m_contextList.adChangeListener(new ContextListSelectionListener()); //m_contextList.adChangeListener(new ContextListSelectionListener());
//m_contextModel = m_contextList.getSelectionModel(); //m_contextModel = m_contextList.getSelectionModel();
} }
@Override @Override
@ -156,8 +179,8 @@ public final class CategoryAdminPane extends BaseAdminPane {
Category cat = m_category.getCategory(state); Category cat = m_category.getCategory(state);
String context = getUseContext(state); String context = getUseContext(state);
boolean isDefaultContext = boolean isDefaultContext = (context == null) || DEFAULT_USE_CONTEXT
(context == null) || DEFAULT_USE_CONTEXT.equals(context); .equals(context);
if (cat.isRoot() || !cat.getChildren().isEmpty()) { if (cat.isRoot() || !cat.getChildren().isEmpty()) {
m_alternativeLabel.generateXML(state, parent); m_alternativeLabel.generateXML(state, parent);
@ -175,15 +198,15 @@ public final class CategoryAdminPane extends BaseAdminPane {
prompt.add(new Label(gz("cms.ui.category.delete_prompt"))); prompt.add(new Label(gz("cms.ui.category.delete_prompt")));
Label catLabel = new Label(); Label catLabel = new Label();
catLabel.addPrintListener(new PrintListener() { catLabel.addPrintListener(new PrintListener() {
public void prepare(PrintEvent pe) { public void prepare(PrintEvent pe) {
Label label = (Label) pe.getTarget(); Label label = (Label) pe.getTarget();
Category cat = Category cat = m_category.getCategory(pe.getPageState());
m_category.getCategory(pe.getPageState());
CategoryCollection descendants = cat.getDescendants(); CategoryCollection descendants = cat.getDescendants();
final long nDescendants = descendants.size() - 1; final long nDescendants = descendants.size() - 1;
descendants.close(); descendants.close();
CategorizedCollection descObjects = CategorizedCollection descObjects = cat
cat.getDescendantObjects(); .getDescendantObjects();
final long nDescObjects = descObjects.size(); final long nDescObjects = descObjects.size();
descObjects.close(); descObjects.close();
StringBuffer sb = new StringBuffer(" "); StringBuffer sb = new StringBuffer(" ");
@ -197,7 +220,8 @@ public final class CategoryAdminPane extends BaseAdminPane {
sb.append(" descendant object(s). "); sb.append(" descendant object(s). ");
} }
if (nDescendants > 0 || nDescObjects > 0) { if (nDescendants > 0 || nDescObjects > 0) {
sb.append("Descendants will be orphaned, if this category is removed."); sb.append(
"Descendants will be orphaned, if this category is removed.");
} }
label.setLabel(sb.toString()); label.setLabel(sb.toString());
} }
@ -207,24 +231,26 @@ public final class CategoryAdminPane extends BaseAdminPane {
} }
public final void process(final FormSectionEvent e) public final void process(final FormSectionEvent e)
throws FormProcessException { throws FormProcessException {
final PageState state = e.getPageState(); final PageState state = e.getPageState();
final Category category = m_category.getCategory(state); final Category category = m_category.getCategory(state);
if (category == null) { if (category == null) {
return; return;
} }
PermissionService.assertPermission(new PermissionDescriptor(PrivilegeDescriptor.DELETE, PermissionService.assertPermission(new PermissionDescriptor(
category, PrivilegeDescriptor.DELETE,
Kernel.getContext(). category,
Kernel.getContext().
getParty())); getParty()));
if (category.isRoot()) { if (category.isRoot()) {
Category root = Category root = Category.getRootForObject(CMS.getContext()
Category.getRootForObject(CMS.getContext().getContentSection(), .getContentSection(),
getUseContext(state)); getUseContext(state));
if (category.equals(root)) { if (category.equals(root)) {
Category.clearRootForObject(CMS.getContext().getContentSection(), Category.clearRootForObject(CMS.getContext()
.getContentSection(),
getUseContext(state)); getUseContext(state));
} }
m_contextModel.setSelectedKey(state, DEFAULT_USE_CONTEXT); m_contextModel.setSelectedKey(state, DEFAULT_USE_CONTEXT);
@ -268,9 +294,10 @@ public final class CategoryAdminPane extends BaseAdminPane {
final PageState state = e.getPageState(); final PageState state = e.getPageState();
if (!m_model.isSelected(state)) { if (!m_model.isSelected(state)) {
final Category root = final Category root = Category.getRootForObject(CMS.getContext()
Category.getRootForObject(CMS.getContext().getContentSection(), .getContentSection(),
getUseContext(state)); getUseContext(
state));
if (root != null) { if (root != null) {
m_model.setSelectedKey(state, root.getID()); m_model.setSelectedKey(state, root.getID());
} }
@ -306,16 +333,17 @@ public final class CategoryAdminPane extends BaseAdminPane {
public class ContextSelectionListener implements ChangeListener { public class ContextSelectionListener implements ChangeListener {
public final void stateChanged(final ChangeEvent e) { public final void stateChanged(final ChangeEvent e) {
s_log.debug("Selection state changed; I may change " + "the body's visible pane"); s_log.debug("Selection state changed; I may change "
+ "the body's visible pane");
final PageState state = e.getPageState(); final PageState state = e.getPageState();
getBody().reset(state); getBody().reset(state);
if (m_contextModel.isSelected(state)) { if (m_contextModel.isSelected(state)) {
final Category root = final Category root = Category
Category.getRootForObject(CMS.getContext().getContentSection(), .getRootForObject(CMS.getContext().getContentSection(),
getUseContext(state)); getUseContext(state));
if (root != null) { if (root != null) {
m_model.setSelectedKey(state, root.getID()); m_model.setSelectedKey(state, root.getID());
@ -324,11 +352,13 @@ public final class CategoryAdminPane extends BaseAdminPane {
} }
if (m_model.isSelected(state)) { if (m_model.isSelected(state)) {
s_log.debug("The selection model is selected; displaying " + "the item pane"); s_log.debug("The selection model is selected; displaying "
+ "the item pane");
getBody().push(state, getItemPane()); getBody().push(state, getItemPane());
} }
} }
} }
} }