Adds more implementations for the category part of the cms frontend 2nd!
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4628 8810af33-2d31-482b-a856-94f89814c4df
Former-commit-id: c5a1508e2d
pull/2/head
parent
406f645407
commit
170e02fea3
|
|
@ -22,30 +22,21 @@ import com.arsdigita.bebop.*;
|
|||
import com.arsdigita.bebop.event.*;
|
||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
||||
import com.arsdigita.bebop.parameters.StringParameter;
|
||||
import com.arsdigita.categorization.CategorizedCollection;
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.categorization.CategoryCollection;
|
||||
import com.arsdigita.cms.CMS;
|
||||
import com.arsdigita.cms.SecurityManager;
|
||||
import com.arsdigita.cms.ui.BaseAdminPane;
|
||||
import com.arsdigita.cms.ui.BaseDeleteForm;
|
||||
import com.arsdigita.cms.ui.BaseTree;
|
||||
import com.arsdigita.cms.ui.VisibilityComponent;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
import com.arsdigita.kernel.permissions.PermissionDescriptor;
|
||||
import com.arsdigita.kernel.permissions.PermissionService;
|
||||
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
|
||||
import com.arsdigita.toolbox.ui.ActionGroup;
|
||||
import com.arsdigita.toolbox.ui.Section;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
* A split pane for the Category Administration UI.
|
||||
*
|
||||
* @author Justin Ross <jross@redhat.com>
|
||||
* @version $Id: CategoryAdminPane.java 2090 2010-04-17 08:04:14Z pboy $
|
||||
* @author <a href="mailto:yannick.buelter@yabue.de">Yannick Bülter</a>
|
||||
*/
|
||||
public final class CategoryAdminPane extends BaseAdminPane {
|
||||
|
||||
|
|
|
|||
|
|
@ -21,25 +21,16 @@ package com.arsdigita.cms.ui.category;
|
|||
|
||||
import com.arsdigita.bebop.*;
|
||||
import com.arsdigita.bebop.table.TableCellRenderer;
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.bebop.util.GlobalizationUtil;
|
||||
import com.arsdigita.cms.CMS;
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentSection;
|
||||
import com.arsdigita.cms.ContentType;
|
||||
import com.arsdigita.cms.dispatcher.ItemResolver;
|
||||
|
||||
import com.arsdigita.cms.ui.CMSContainer;
|
||||
import com.arsdigita.cms.util.GlobalizationUtil;
|
||||
import com.arsdigita.domain.DomainObject;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.kernel.ACSObject;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
import com.arsdigita.kernel.User;
|
||||
import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.DataQuery;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.toolbox.ui.DataQueryListModelBuilder;
|
||||
import com.arsdigita.util.Assert;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.librecms.contentsection.ContentSection;
|
||||
import org.librecms.dispatcher.ItemResolver;
|
||||
|
||||
/**
|
||||
* Displays a list of items for the given category
|
||||
|
|
@ -50,8 +41,8 @@ import com.arsdigita.util.Assert;
|
|||
*/
|
||||
public class CategoryItemsBrowser extends Grid {
|
||||
|
||||
private static final org.apache.log4j.Logger s_log =
|
||||
org.apache.log4j.Logger.getLogger(CategoryItemsBrowser.class);
|
||||
private static final Logger LOGGER = LogManager.getLogger(
|
||||
CategoryItemsBrowser.class);
|
||||
|
||||
private RequestLocal m_resolver;
|
||||
|
||||
|
|
@ -87,7 +78,7 @@ public class CategoryItemsBrowser extends Grid {
|
|||
ContentSection section =
|
||||
CMS.getContext().getContentSection();
|
||||
final ItemResolver itemResolver = section.getItemResolver();
|
||||
s_log.warn("Item resolver is" + itemResolver.getClass());
|
||||
LOGGER.warn("Item resolver is" + itemResolver.getClass());
|
||||
return itemResolver;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -18,15 +18,7 @@
|
|||
*/
|
||||
package com.arsdigita.cms.ui.category;
|
||||
|
||||
import com.arsdigita.bebop.ColumnPanel;
|
||||
import com.arsdigita.bebop.Form;
|
||||
import com.arsdigita.bebop.FormProcessException;
|
||||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||
import com.arsdigita.bebop.SaveCancelSection;
|
||||
import com.arsdigita.bebop.SingleSelectionModel;
|
||||
import com.arsdigita.bebop.Tree;
|
||||
import com.arsdigita.bebop.*;
|
||||
import com.arsdigita.bebop.event.ChangeEvent;
|
||||
import com.arsdigita.bebop.event.ChangeListener;
|
||||
import com.arsdigita.bebop.event.FormInitListener;
|
||||
|
|
@ -43,10 +35,13 @@ import com.arsdigita.cms.ui.CMSForm;
|
|||
import com.arsdigita.cms.ui.FormSecurityListener;
|
||||
import com.arsdigita.util.Assert;
|
||||
import org.libreccm.categorization.Category;
|
||||
import org.libreccm.categorization.CategoryManager;
|
||||
import org.libreccm.categorization.CategoryRepository;
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.librecms.contentsection.privileges.AdminPrivileges;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -55,12 +50,12 @@ import java.math.BigDecimal;
|
|||
public class CategoryMoveForm extends CMSForm {
|
||||
|
||||
public static final String CONTEXT_SELECTED = "sel_context";
|
||||
private static final String DEFAULT_USE_CONTEXT =
|
||||
CategoryUseContextModelBuilder.DEFAULT_USE_CONTEXT;
|
||||
//private static final String DEFAULT_USE_CONTEXT =
|
||||
// CategoryUseContextModelBuilder.DEFAULT_USE_CONTEXT;
|
||||
private final CategoryRequestLocal selectedCategory;
|
||||
private final SaveCancelSection saveCancelSection;
|
||||
private final ChangeListener changeListener;
|
||||
//private final SingleSelectionModel selectionModel;
|
||||
private final SingleSelectionModel selectionModel;
|
||||
private final Tree categoryTree;
|
||||
|
||||
public CategoryMoveForm(final CategoryRequestLocal selectedCategory,
|
||||
|
|
@ -88,7 +83,7 @@ public class CategoryMoveForm extends CMSForm {
|
|||
add(header, ColumnPanel.FULL_WIDTH);
|
||||
|
||||
changeListener = new TreeChangeListener();
|
||||
//selectionModel = new ParameterSingleSelectionModel(new StringParameter("selectedCategory"));
|
||||
selectionModel = new ParameterSingleSelectionModel(new StringParameter("selectedCategory"));
|
||||
categoryTree = new BaseTree(new CategoryTreeModelBuilder(contextModel));
|
||||
categoryTree.addChangeListener(changeListener);
|
||||
|
||||
|
|
@ -99,8 +94,7 @@ public class CategoryMoveForm extends CMSForm {
|
|||
|
||||
addInitListener(new InitListener());
|
||||
addProcessListener(new ProcessListener());
|
||||
addSubmissionListener(new FormSecurityListener(
|
||||
com.arsdigita.cms.SecurityManager.CATEGORY_ADMIN));
|
||||
addSubmissionListener(new FormSecurityListener(AdminPrivileges.ADMINISTER_CATEGORIES));
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -151,26 +145,31 @@ public class CategoryMoveForm extends CMSForm {
|
|||
final PageState state = event.getPageState();
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final CategoryRepository categoryRepository = cdiUtil.findBean(CategoryRepository.class);
|
||||
final CategoryManager categoryManager = cdiUtil.findBean(CategoryManager.class);
|
||||
|
||||
if (saveCancelSection.getSaveButton().isSelected(state)
|
||||
&& !(categoryTree.getSelectedKey(state).equals(selectedCategory.getCategory(state).getUniqueId()))) {
|
||||
|
||||
final Category categoryToMove = selectedCategory.getCategory(state);
|
||||
final String targetKey = (String) categoryTree.getSelectedKey(state);
|
||||
final Category target = categoryRepository.findById(Long.parseLong(targetKey));
|
||||
|
||||
final CategoryCollection parents = categoryToMove.getParents();
|
||||
while (parents.next()) {
|
||||
final Category parent = parents.getCategory();
|
||||
parent.removeChild(categoryToMove);
|
||||
parent.save();
|
||||
final Optional<Category> categoryOptional = categoryRepository.findById(Long.parseLong(targetKey));
|
||||
if (categoryOptional.isPresent()) {
|
||||
final Category target = categoryOptional.get();
|
||||
|
||||
final Category parent = categoryToMove.getParentCategory();
|
||||
|
||||
categoryManager.removeSubCategoryFromCategory(categoryToMove, parent);
|
||||
categoryRepository.save(parent);
|
||||
|
||||
categoryManager.addSubCategoryToCategory(categoryToMove, target);
|
||||
categoryToMove.setParentCategory(target);
|
||||
|
||||
categoryRepository.save(target);
|
||||
categoryRepository.save(categoryToMove);
|
||||
} else {
|
||||
throw new FormProcessException(GlobalizationUtil.globalize("Category with id" + targetKey + " does not exist!"));
|
||||
}
|
||||
|
||||
target.addChild(categoryToMove);
|
||||
categoryToMove.setDefaultParentCategory(target);
|
||||
|
||||
target.save();
|
||||
categoryToMove.save();
|
||||
}
|
||||
|
||||
categoryTree.clearSelection(state);
|
||||
|
|
|
|||
|
|
@ -23,11 +23,9 @@ import com.arsdigita.bebop.SingleSelectionModel;
|
|||
import com.arsdigita.bebop.Tree;
|
||||
import com.arsdigita.bebop.tree.TreeModel;
|
||||
import com.arsdigita.bebop.tree.TreeModelBuilder;
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.categorization.CategoryTreeModelLite;
|
||||
import com.arsdigita.cms.CMS;
|
||||
import com.arsdigita.cms.ContentSection;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
import org.libreccm.categorization.Category;
|
||||
import org.libreccm.categorization.CategoryTreeModelLite;
|
||||
|
||||
/**
|
||||
* Lists category tree.
|
||||
|
|
@ -50,11 +48,9 @@ class CategoryTreeModelBuilder extends LockableImpl
|
|||
}
|
||||
|
||||
public final TreeModel makeModel(final Tree tree, final PageState state) {
|
||||
final ContentSection section = CMS.getContext().getContentSection();
|
||||
final Category root = Category.getRootForObject(section,
|
||||
getUseContext(state));
|
||||
String order = ContentSection.getConfig().getCategoryTreeOrder();
|
||||
final CategoryTreeModelLite model = new CategoryTreeModelLite(root, order);
|
||||
final Category category = (Category) m_contextModel.getSelectedKey(state);
|
||||
|
||||
final CategoryTreeModelLite model = new CategoryTreeModelLite(category);
|
||||
|
||||
return model;
|
||||
}
|
||||
|
|
@ -69,5 +65,4 @@ class CategoryTreeModelBuilder extends LockableImpl
|
|||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,12 +23,15 @@ import com.arsdigita.bebop.PageState;
|
|||
import com.arsdigita.bebop.list.AbstractListModelBuilder;
|
||||
import com.arsdigita.bebop.list.ListModel;
|
||||
import com.arsdigita.cms.CMS;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.libreccm.categorization.Category;
|
||||
import org.libreccm.categorization.CategoryManager;
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.librecms.contentsection.ContentSection;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* Builds a list of category use contexts for the current
|
||||
* content section.
|
||||
|
|
@ -41,15 +44,15 @@ class CategoryUseContextModelBuilder extends AbstractListModelBuilder {
|
|||
|
||||
private static String DEFAULT_USE_CONTEXT = "<default>";
|
||||
|
||||
private static final Logger s_log = Logger.getLogger
|
||||
(CategoryUseContextModelBuilder.class);
|
||||
private static final Logger LOGGER = LogManager.getLogger(
|
||||
CategoryUseContextModelBuilder.class);
|
||||
|
||||
public final ListModel makeModel(final List list, final PageState state) {
|
||||
return new Model();
|
||||
}
|
||||
|
||||
private class Model implements ListModel {
|
||||
private final RootCategoryCollection m_roots;
|
||||
private final java.util.List<Category> m_roots;
|
||||
|
||||
public Model() {
|
||||
final ContentSection section =
|
||||
|
|
@ -58,7 +61,7 @@ class CategoryUseContextModelBuilder extends AbstractListModelBuilder {
|
|||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final CategoryManager manager = cdiUtil.findBean(CategoryManager.class);
|
||||
|
||||
m_roots = manager.get
|
||||
m_roots = (Category) CMS.getContext().getContentItem();
|
||||
//m_roots.addOrder(Category.USE_CONTEXT);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue