diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/ContentItemPage.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/ContentItemPage.java
index 34a3fcb53..679ce5f0c 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/ContentItemPage.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/ContentItemPage.java
@@ -46,7 +46,6 @@ import com.arsdigita.cms.ui.item.CustomizedPreviewLink;
import com.arsdigita.cms.ui.item.ItemLanguages;
import com.arsdigita.cms.ui.item.Summary;
import com.arsdigita.cms.ui.lifecycle.ItemLifecycleAdminPane;
-import com.arsdigita.cms.ui.revision.ItemRevisionAdminPane;
import com.arsdigita.cms.ui.workflow.ItemWorkflowAdminPane;
import com.arsdigita.globalization.GlobalizedMessage;
import com.arsdigita.kernel.KernelConfig;
@@ -91,36 +90,45 @@ public class ContentItemPage extends CMSPage implements ActionListener {
*/
private static final Logger LOGGER = LogManager.getLogger(
ContentItemPage.class);
+
/**
* The URL parameter that must be passed in in order to set the current tab.
* This is a KLUDGE right now because the TabbedDialog's current tab is
* selected with a local state parameter
*/
public static final String SET_TAB = "set_tab";
+
/**
* The name of the global state parameter that holds the item id.
*/
public static final String ITEM_ID = "item_id";
+
/**
* The name of th global state parameter that holds the selected language.
*/
public static final String SELECTED_LANGUAGE = "selected_language";
+
/**
* The name of the global state parameter which holds the return URL.
*/
public static final String RETURN_URL = "return_url";
+
/**
* The name of the global state parameter that determines whether or not to
* use the streamlined authoring process (assuming the option is turned on).
*
*/
public static final String STREAMLINED_CREATION = "streamlined_creation";
+
public static final String STREAMLINED_CREATION_ACTIVE = "active";
+
public static final String STREAMLINED_CREATION_INACTIVE = "active";
+
/**
* Index of the summary tab
*/
public static final int SUMMARY_TAB = 0;
+
/**
*
* The name of the state parameter which indicates the content type of the
@@ -131,26 +139,42 @@ public class ContentItemPage extends CMSPage implements ActionListener {
* content type.
*/
public static final String CONTENT_TYPE = "content_type";
+
public static final int AUTHORING_TAB = 1;
+
public static final int LANGUAGE_TAB = 2;
+
public static final int WORKFLOW_TAB = 3;
+
public static final int PUBLISHING_TAB = 4;
+
public static final int HISTORY_TAB = 5;
+
public static final int TEMPLATES_TAB = 6;
private final TabbedPane tabbedPane;
+
private final StringParameter returnUrlParameter;
+
private final ItemSelectionModel itemSelectionModel;
// private final SingleSelectionModel selectedLanguageModel;
+
private final ACSObjectSelectionModel typeSelectionModel;
+
private final ContentItemRequestLocal itemRequestLocal;
+
private final Summary summaryPane;
+
private final ItemWorkflowAdminPane workflowPane;
+
private final ItemLifecycleAdminPane lifecyclePane;
+
private final WizardSelector wizardPane;
+
private final ItemLanguages languagesPane;
- private final ItemRevisionAdminPane revisionsPane;
+
private final Link previewLink;
+
private final GlobalNavigation globalNavigation;
private final StringParameter selectedLanguageParam;
@@ -263,18 +287,14 @@ public class ContentItemPage extends CMSPage implements ActionListener {
globalNavigation = new GlobalNavigation();
add(globalNavigation);
-
-
// Create panels.
summaryPane = new Summary(itemSelectionModel);
wizardPane = new WizardSelector(itemSelectionModel, typeSelectionModel);
languagesPane = new ItemLanguages(itemSelectionModel,
-// selectedLanguageModel,
+ // selectedLanguageModel,
selectedLanguageParam);
workflowPane = new ItemWorkflowAdminPane(itemId); // Make this use m_item XXX
lifecyclePane = new ItemLifecycleAdminPane(itemRequestLocal);
- revisionsPane = new ItemRevisionAdminPane(itemRequestLocal);
-// templatesPane = new ItemTemplates(itemSelectionModel);
// Create tabbed pane.
tabbedPane = new TabbedPane();
@@ -291,10 +311,6 @@ public class ContentItemPage extends CMSPage implements ActionListener {
workflowPane);
tabbedPane.addTab(new Label(gz("cms.ui.item.lifecycles")),
lifecyclePane);
- tabbedPane.addTab(new Label(gz("cms.ui.item.history")),
- revisionsPane);
-// tabbedPane.addTab(new Label(gz("cms.ui.item.templates")),
-// templatesPane);
tabbedPane.addActionListener(new ActionListener() {
@@ -538,7 +554,7 @@ public class ContentItemPage extends CMSPage implements ActionListener {
*/
public static String getItemURL(final ContentItem item,
final int tab) {
-
+
final ContentSection section = item.getContentType().getContentSection();
if (section == null) {
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/ItemRevisionAdminPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/ItemRevisionAdminPane.java
deleted file mode 100755
index 27148b839..000000000
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/ItemRevisionAdminPane.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.ui.revision;
-
-import com.arsdigita.bebop.ActionLink;
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.ControlLink;
-import com.arsdigita.bebop.Form;
-import com.arsdigita.bebop.GridPanel;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.Link;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.Table;
-import com.arsdigita.bebop.Text;
-import com.arsdigita.bebop.event.TableActionAdapter;
-import com.arsdigita.bebop.event.TableActionEvent;
-import com.arsdigita.bebop.form.Option;
-import com.arsdigita.bebop.form.RadioGroup;
-import com.arsdigita.bebop.form.Submit;
-import com.arsdigita.bebop.table.DefaultTableCellRenderer;
-import com.arsdigita.bebop.table.DefaultTableColumnModel;
-import com.arsdigita.bebop.table.TableCellRenderer;
-import com.arsdigita.bebop.table.TableColumn;
-import com.arsdigita.bebop.table.TableColumnModel;
-
-import org.librecms.contentsection.ContentItem;
-import org.librecms.contentsection.ContentSection;
-
-import com.arsdigita.cms.dispatcher.CMSDispatcher;
-import com.arsdigita.cms.ui.BaseItemPane;
-import com.arsdigita.cms.ui.item.ContentItemRequestLocal;
-import com.arsdigita.toolbox.ui.ActionGroup;
-import com.arsdigita.toolbox.ui.LayoutPanel;
-import com.arsdigita.toolbox.ui.NullComponent;
-import com.arsdigita.toolbox.ui.Section;
-
-import org.libreccm.cdi.utils.CdiUtil;
-import org.librecms.contentsection.ContentItemRepository;
-import org.librecms.contentsection.ContentSectionManager;
-import org.librecms.dispatcher.ItemResolver;
-
-import java.math.BigInteger;
-
-/**
- * Displays the revision history of a {@link ContentItem}
- *
- * @author unknown
- * @author Jens Pelzetter
- *
- */
-public final class ItemRevisionAdminPane extends BaseItemPane {
-
- private final ContentItemRequestLocal itemRequestLocal;
-
- private final RevisionTable revisionsTable;
-
- private final RevisionRequestLocal fromRequestLocal;
- private final RevisionRequestLocal toRequestLocal;
-
- private final LayoutPanel selectPane;
- //ToDo
- //private final DifferencePane diffPane;
-
- public ItemRevisionAdminPane(final ContentItemRequestLocal itemRequestLocal) {
- this.itemRequestLocal = itemRequestLocal;
-
- final RadioGroup fromSelect = new RadioGroup("from");
- final RadioGroup toSelect = new RadioGroup("to");
-
- fromRequestLocal = new SelectionRequestLocal(fromSelect);
- toRequestLocal = new SelectionRequestLocal(toSelect);
-
- revisionsTable = new RevisionTable(fromSelect, toSelect);
-
- final RevisionForm form = new RevisionForm(fromSelect, toSelect,
- revisionsTable);
-
- selectPane = new LayoutPanel();
- add(selectPane);
- setDefault(selectPane);
-
- selectPane.setBody(new Section(gz("cms.ui.item.revisions"), form));
-
- final ActionLink returnLink = new ActionLink(new Label(gz(
- "cms.ui.item.revision.return")));
-
-// Todo
-// diffPane = new DifferencePane(itemRequestLocal,
-// fromRequestLocal,
-// toRequestLocal,
-// returnLink);
-// add(diffPane);
-//
-// connect(form, diffPane);
- connect(returnLink, selectPane);
- }
-
- private class SelectionRequestLocal extends RevisionRequestLocal {
-
- private final RadioGroup group;
-
- SelectionRequestLocal(final RadioGroup group) {
- this.group = group;
- }
-
- @Override
- protected final Object initialValue(final PageState state) {
- final Object selected = group.getValue(state);
-
- if (selected == null || selected.toString().equals("")) {
- return null;
- } else {
- final long revisionNumber = Long.parseLong(selected.toString());
- final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
- final ContentItemRepository itemRepository = cdiUtil.findBean(
- ContentItemRepository.class);
- return itemRepository.retrieveRevision(revisionNumber);
- }
- }
-
- }
-
- private class RevisionForm extends Form {
-
- RevisionForm(final RadioGroup fromSelect,
- final RadioGroup toSelect,
- final RevisionTable revisions) {
- super("revisions", new GridPanel(1));
-
- setMethod("get");
-
- add(fromSelect);
- add(toSelect);
-
- // Sets the 'to' revision to the dummy current revision
- // and the 'from' revision to the dummy root revision.
- fromSelect.setOptionSelected("");
- toSelect.setOptionSelected("");
-
- final ActionGroup group = new ActionGroup();
- add(group);
-
- group.setSubject(revisions);
-
- group.addAction(new Submit("diff",
- gz("cms.ui.item.revision.difference.show")));
- }
-
- }
-
- private class RevisionTable extends Table {
- // XXX Need to fix the static l18n stuff
-
- private final TableColumn fromCol = new TableColumn(
- RevisionTableModelBuilder.FROM, lz("cms.ui.item.revision.from"));
- private final TableColumn toCol = new TableColumn(
- RevisionTableModelBuilder.TO,
- lz("cms.ui.item.revision.to"));
- private final TableColumn timestampCol = new TableColumn(
- RevisionTableModelBuilder.TIMESTAMP, lz("cms.ui.item.revision"));
- private final TableColumn userCol = new TableColumn(
- RevisionTableModelBuilder.USER, lz("cms.ui.user"));
- private final TableColumn descriptionCol = new TableColumn(
- RevisionTableModelBuilder.DESCRIPTION, lz("cms.ui.description"));
- private final TableColumn previewCol = new TableColumn(
- RevisionTableModelBuilder.PREVIEW, lz("cms.ui.item.revision.view"));
- private final TableColumn rollbackCol = new TableColumn(
- RevisionTableModelBuilder.ROLLBACK,
- lz("cms.ui.item.revision.rollback"));
-
- public RevisionTable(final RadioGroup fromSelect,
- final RadioGroup toSelect) {
- super(new RevisionTableModelBuilder(itemRequestLocal),
- new DefaultTableColumnModel());
-
- final TableColumnModel columns = getColumnModel();
- columns.add(fromCol);
- columns.add(toCol);
- columns.add(timestampCol);
- columns.add(userCol);
- columns.add(descriptionCol);
- columns.add(previewCol);
- columns.add(rollbackCol);
-
- fromCol.setCellRenderer(new RadioCellRenderer(fromSelect));
- toCol.setCellRenderer(new RadioCellRenderer(toSelect));
- timestampCol.setCellRenderer(new DefaultTableCellRenderer(false));
- userCol.setCellRenderer(new DefaultTableCellRenderer(false));
- descriptionCol.setCellRenderer(new DefaultTableCellRenderer(false));
- previewCol.setCellRenderer(new ViewCellRenderer());
- rollbackCol.setCellRenderer(new RollbackCellRenderer());
-
- setEmptyView(new Label(gz("cms.ui.item.revision.none")));
-
- addTableActionListener(new RollbackActionListener());
- }
-
- class RadioCellRenderer implements TableCellRenderer {
-
- private final RadioGroup group;
-
- RadioCellRenderer(final RadioGroup group) {
- this.group = group;
- }
-
- @Override
- public Component getComponent(final Table table,
- final PageState state,
- final Object value,
- final boolean isSelected,
- final Object key,
- final int row,
- final int column) {
- switch (key.toString()) {
- case "first":
- if (column == RevisionTableModelBuilder.FROM) {
- return new NullComponent();
- } else {
- final Option option = new Option("", new Text(""));
-
- option.setGroup(group);
-
- return option;
- }
- case "last":
- if (column == RevisionTableModelBuilder.FROM) {
- final Option option = new Option("", "");
-
- option.setGroup(group);
-
- return option;
- } else {
- return new NullComponent();
- }
- default:
- final Option option = new Option(key.toString(),
- new Text(""));
-
- option.setGroup(group);
-
- return option;
- }
- }
-
- }
-
- class ViewCellRenderer implements TableCellRenderer {
-
- @Override
- public Component getComponent(final Table table,
- final PageState state,
- final Object value,
- final boolean isSelected,
- final Object key,
- final int row,
- final int column) {
- if (key instanceof String) {
- return new NullComponent();
- } else {
- final BigInteger transID = (BigInteger) key;
- final ContentItem item = itemRequestLocal.getContentItem(
- state);
- final ContentSection section = item.getContentType()
- .getContentSection();
-
- final ContentSectionManager sectionManager = CdiUtil
- .createCdiUtil().findBean(ContentSectionManager.class);
- final ItemResolver itemResolver = sectionManager
- .getItemResolver(section);
-
- final StringBuffer url = new StringBuffer(itemResolver
- .generateItemURL(state, item, section,
- CMSDispatcher.PREVIEW));
-
- // Cheesy code should be fixed
- final String sep;
- if (url.toString().indexOf('?') == -1) {
- sep = "?";
- } else {
- sep = "&";
- }
-
- // TODO: fix this
- //url.append(sep).append
- // (HistoryCollection.TRANS_ID).append("=");
- url.append(sep).append("transID").append("=");
- url.append(transID.toString());
-
- final Link link = new Link(new Label(gz(
- "cms.ui.item.revision.view")),
- url.toString());
-
- link.setTargetFrame(lz("cms.ui.item.revision.view"));
-
- return link;
- }
- }
-
- }
-
- class RollbackActionListener extends TableActionAdapter {
-
- @Override
- public final void cellSelected(final TableActionEvent event) {
- final PageState state = event.getPageState();
-
- if (event.getColumn() == RevisionTableModelBuilder.ROLLBACK) {
- final ContentItem item = itemRequestLocal.getContentItem(
- state);
-
- //Rollback not supported yet
-
-// Versions.rollback(item.getOID(),
-// new BigInteger(event.getRowKey()
-// .toString()));
-//
-// item.applyTag(lz("cms.ui.item.revision.rolled_back"));
- }
- }
-
- }
-
- class RollbackCellRenderer implements TableCellRenderer {
-
- @Override
- public Component getComponent(final Table table,
- final PageState state,
- final Object value,
- final boolean isSelected,
- final Object key,
- final int row,
- final int column) {
- if (key instanceof String) {
- return new NullComponent();
- } else {
- return new ControlLink(new Label(gz(
- "cms.ui.item.revision.rollback")));
- }
- }
-
- }
-
- }
-
-}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionRequestLocal.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionRequestLocal.java
deleted file mode 100755
index e5806e310..000000000
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionRequestLocal.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.ui.revision;
-
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.RequestLocal;
-
-import org.libreccm.auditing.CcmRevision;
-
-public abstract class RevisionRequestLocal extends RequestLocal {
-
- public final CcmRevision getRevision(final PageState state) {
- final CcmRevision revision = (CcmRevision) get(state);
-
- return revision;
- }
-}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionTableModelBuilder.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionTableModelBuilder.java
deleted file mode 100755
index e0df62508..000000000
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/revision/RevisionTableModelBuilder.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.ui.revision;
-
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.Table;
-import com.arsdigita.bebop.table.AbstractTableModelBuilder;
-import com.arsdigita.bebop.table.TableModel;
-import com.arsdigita.cms.ui.item.ContentItemRequestLocal;
-import com.arsdigita.globalization.GlobalizedMessage;
-
-import org.libreccm.security.User;
-
-import com.arsdigita.toolbox.ui.FormatStandards;
-
-import org.libreccm.auditing.CcmRevision;
-import org.libreccm.cdi.utils.CdiUtil;
-import org.librecms.CmsConstants;
-import org.librecms.contentsection.ContentItem;
-import org.librecms.contentsection.ContentItemRepository;
-
-import java.util.List;
-
-/**
- * @author Stanislav Freidin <sfreidin@redhat.com>
- * @author Justin Ross <jross@redhat.com>
- * @version $Id: RevisionTableModelBuilder.java 1942 2009-05-29 07:53:23Z terry
- * $
- */
-class RevisionTableModelBuilder extends AbstractTableModelBuilder {
-
- static final int FROM = 0;
- static final int TO = 1;
- static final int TIMESTAMP = 2;
- static final int USER = 3;
- static final int DESCRIPTION = 4;
- static final int PREVIEW = 5;
- static final int ROLLBACK = 6;
-
- static final int COLUMNS = 7;
-
- private final ContentItemRequestLocal itemRequestLocal;
-
- RevisionTableModelBuilder(final ContentItemRequestLocal itemRequestLocal) {
- this.itemRequestLocal = itemRequestLocal;
- }
-
- @Override
- public final TableModel makeModel(final Table table,
- final PageState state) {
- return new Model(itemRequestLocal.getContentItem(state));
- }
-
- private static class Model implements TableModel {
-
- private final List revisions;
- private CcmRevision currentRevision;
- private long count = 0;
- private long last = 2;
- private int index = -1;
-
- public Model(final ContentItem item) {
- final ContentItemRepository itemRepository = CdiUtil
- .createCdiUtil()
- .findBean(ContentItemRepository.class);
- revisions = itemRepository.retrieveRevisions(item,
- item.getObjectId());
-
- last = revisions.size() + 2;
- }
-
- @Override
- public final int getColumnCount() {
- return COLUMNS;
- }
-
- @Override
- public final boolean nextRow() {
- count++;
- index++;
-
- if (count == 1) {
- return true;
- } else if (count == last) {
- return true;
- } else if (revisions.size() < index) {
- currentRevision = revisions.get(index);
-
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public final Object getElementAt(final int column) {
- if (count == 1) {
- switch (column) {
- case TIMESTAMP:
- return lz("cms.ui.item.revision.current");
- default:
- return "";
- }
- } else if (count == last) {
- switch (column) {
- case TIMESTAMP:
- return lz("cms.ui.item.revision.first");
- default:
- return "";
- }
- } else {
- switch (column) {
- case TIMESTAMP:
- return FormatStandards.formatDateTime(
- currentRevision.getRevisionDate());
- case USER:
-
- return currentRevision.getUserName();
- case DESCRIPTION:
- return "";
- default:
- return "";
- }
- }
- }
-
- @Override
- public final Object getKeyAt(final int column) {
- if (count == 1) {
- return "first";
- } else if (count == last) {
- return "last";
- } else {
- return currentRevision.getId();
- }
- }
-
- }
-
- private static GlobalizedMessage gz(final String key) {
- return new GlobalizedMessage(key, CmsConstants.CMS_BUNDLE);
- }
-
- private static String lz(final String key) {
- return (String) gz(key).localize();
- }
-
-}