diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
index 4d7d579cd..d661d0ec2 100755
--- a/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
+++ b/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
@@ -1101,3 +1101,5 @@ cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=This category can't be deleted.
cms.ui.item_search.flat.filter.submit=Filter
cms.ui.item_search.selected=Selected content item (id)
+cms.ui.item_search.create=Create new
+cms.ui.item_search.create.folder_select=Select folder
diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
index 4ee423c8b..13f5e7389 100755
--- a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
+++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
@@ -1092,3 +1092,5 @@ cms.ui.item_search.flatBrowse=Item ausw\u00e4hlen
cms.ui.category.undeletable=Diese Kategorie kann nicht gel\u00f6scht werden.
cms.ui.item_search.flat.filter.submit=Filtern
cms.ui.item_search.selected=Ausgew\u00e4hltes Content Item (ID)
+cms.ui.item_search.create=Neu anlegen
+cms.ui.item_search.create.folder_select=Order ausw\u00e4hlen
diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties
index 8e13ca49a..4aeeed826 100755
--- a/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties
+++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties
@@ -40,3 +40,5 @@ cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=
cms.ui.item_search.flat.filter.submit=
cms.ui.item_search.selected=
+cms.ui.item_search.create=
+cms.ui.item_search.create.folder_select=
diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties
index 0e1553fac..a49de4db8 100755
--- a/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties
+++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties
@@ -571,3 +571,5 @@ cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=
cms.ui.item_search.flat.filter.submit=
cms.ui.item_search.selected=
+cms.ui.item_search.create=
+cms.ui.item_search.create.folder_select=
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/FlatItemList.java b/ccm-cms/src/com/arsdigita/cms/ui/FlatItemList.java
index 65d67e150..25a071e0d 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/FlatItemList.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/FlatItemList.java
@@ -269,7 +269,7 @@ public class FlatItemList extends SegmentedPanel
m_selector = new CreationSelector(m_typeSel, m_folderSel);
m_newItemSeg.add(m_selector);
- m_newItemSeg.add(new Label("
", false));
+ //m_newItemSeg.add(new Label("
", false));
// The 'new folder' segment
m_newFolderSeg.addHeader(new Label(globalize("cms.ui.new_folder")));
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java
index 70af47748..74dee7f8f 100644
--- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java
@@ -4,19 +4,27 @@
*/
package com.arsdigita.cms.ui;
+import com.arsdigita.bebop.BoxPanel;
+import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
+import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.SegmentedPanel;
import com.arsdigita.bebop.SegmentedPanel.Segment;
import com.arsdigita.bebop.SingleSelectionModel;
+import com.arsdigita.bebop.event.ActionEvent;
+import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
+import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.ui.authoring.CreationSelector;
import com.arsdigita.cms.ui.authoring.NewItemForm;
+import com.arsdigita.cms.ui.folder.FlatFolderPicker;
+import com.arsdigita.cms.ui.folder.FolderItemPane;
import com.arsdigita.cms.ui.folder.FolderRequestLocal;
import com.arsdigita.cms.ui.folder.FolderSelectionModel;
import com.arsdigita.cms.ui.folder.FolderTreeModelBuilder;
@@ -26,23 +34,35 @@ import java.math.BigDecimal;
/**
*
* @author Sören Bernstein (quasimodo)
+ * @author Jens Pelzetter
*/
-class ItemSearchCreateItemPane extends CMSContainer implements FormProcessListener {
+class ItemSearchCreateItemPane extends CMSContainer implements FormProcessListener, FormSubmissionListener {
private static final String CONTENT_TYPE_ID = "ct";
private NewItemForm m_newItem;
private SingleSelectionModel m_typeSel;
+ private FlatFolderPicker m_folderPicker;
private final BaseTree m_tree;
private final SingleSelectionModel m_model;
private final FolderSelectionModel m_folderSel; // To support legacy UI code
private final FolderRequestLocal m_folder;
- private CreationSelector m_selector;
+ private final CreationSelector m_creator;
+ private final ItemSearchPage parent;
+ private SegmentedPanel m_segPanel;
+ private Segment m_creationSeg;
private Segment m_newItemSeg;
- public ItemSearchCreateItemPane() {
+ public ItemSearchCreateItemPane(final ItemSearchPage parent) {
+ super();
+
+ this.parent = parent;
-// m_newItem = new SectionNewItemForm("newItem");
-// m_newItem.addProcessListener(this);
+ m_segPanel = new SegmentedPanel("itemSearchCreate");
+ m_creationSeg = new Segment();
+ m_newItemSeg = new Segment();
+
+ m_newItem = new SectionNewItemForm("newItem");
+ m_newItem.addProcessListener(this);
m_tree = new BaseTree(new FolderTreeModelBuilder());
m_model = m_tree.getSelectionModel();
@@ -52,27 +72,64 @@ class ItemSearchCreateItemPane extends CMSContainer implements FormProcessListen
// m_newItemSeg = addSegment();
this.setIdAttr("folder-new-item");
-// m_newItemSeg.addHeader(new Label(GlobalizationUtil.globalize("cms.ui.new_item")));
+// m_newItemSeg.addHeader(new Label(GlobalizationUtil.globalize("cms.ui.new_item")));
m_typeSel = new ParameterSingleSelectionModel(new BigDecimalParameter(CONTENT_TYPE_ID));
// m_typeSel.addChangeListener(this);
- m_selector = new CreationSelector(m_typeSel, m_folderSel);
- this.add(m_selector);
- this.add(new Label("
", false));
+ m_creator = new CreationSelector(m_typeSel, m_folderSel);
+ m_creationSeg.add(m_creator);
+ m_creationSeg.add(new Label("
", false));
-// add(m_newItem);
+ final BoxPanel folderRow = new BoxPanel(BoxPanel.HORIZONTAL);
+ folderRow.add(new Label(GlobalizationUtil.globalize("cms.ui.item_search.create.folder_select")));
+ m_folderPicker = new FlatFolderPicker("flatFolder");
+ //m_newItem.add(m_folderPicker);
+ folderRow.add(m_folderPicker);
+ m_newItem.add(folderRow);
+ m_newItemSeg.add(m_newItem);
+
+ m_newItem.addProcessListener(this);
+ m_newItem.addSubmissionListener(this);
+
+ m_segPanel.add(m_newItemSeg);
+ m_segPanel.add(m_creationSeg);
+
+ add(m_segPanel);
}
- public void process(FormSectionEvent e) {
- PageState s = e.getPageState();
- final Object source = e.getSource();
- if (source == m_newItem) {
- BigDecimal typeID = m_newItem.getTypeID(s);
- m_typeSel.setSelectedKey(s, typeID);
- //newItemMode(s);
- }
+ @Override
+ public void register(final Page page) {
+ super.register(page);
+
+ page.setVisibleDefault(m_newItemSeg, true);
+ page.setVisibleDefault(m_creationSeg, false);
+
+ page.addComponentStateParam(this, m_typeSel.getStateParameter());
+ page.addComponentStateParam(this, m_folderSel.getStateParameter());
+ }
+
+ public void submitted(final FormSectionEvent fse) {
+
+ }
+
+ public void process(FormSectionEvent fse) throws FormProcessException {
+ final PageState state = fse.getPageState();
+ final Object source = fse.getSource();
+ //if (source == m_newItem) {
+ final BigDecimal typeID = m_newItem.getTypeID(state);
+ m_typeSel.setSelectedKey(state, typeID);
+ final BigDecimal folderId = (BigDecimal) m_folderPicker.getValue(state);
+ m_folderSel.setSelectedKey(state, folderId);
+
+ //m_newItem.setVisible(state, false);
+ //m_creator.setVisible(state, true);
+ //m_newItemSeg.setVisible(state, false);
+ m_creationSeg.setVisible(state, true);
+ //parent.setTabActive(state, this, true);
+ //newItemMode(state);
+ //}
}
private static class SectionNewItemForm extends NewItemForm {
@@ -84,5 +141,6 @@ class ItemSearchCreateItemPane extends CMSContainer implements FormProcessListen
public ContentSection getContentSection(PageState s) {
return CMS.getContext().getContentSection();
}
+
}
}
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java
index 053be45d1..11b13643e 100644
--- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java
@@ -65,6 +65,8 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
public ItemSearchFlatBrowsePane(final String name) {
super(name);
+ setIdAttr("itemSearchFlatBrowse");
+
final BoxPanel mainPanel = new BoxPanel(BoxPanel.VERTICAL);
queryParam = new StringParameter(QUERY_PARAM);
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java
index 717e1930a..e9345fcae 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java
@@ -61,12 +61,11 @@ public class ItemSearchPage extends CMSPage {
private ItemSearchFlatBrowsePane m_flatBrowse;
private ItemSearchBrowsePane m_browse;
private ItemSearchPopup m_search;
- //private ItemSearchCreateItemPane m_create;
+ private ItemSearchCreateItemPane m_create;
private BigDecimalParameter m_sectionId;
private static final CMSConfig s_conf = CMSConfig.getInstance();
private static final boolean LIMIT_TO_CONTENT_SECTION = false;
public static final String CONTENT_SECTION = "section_id";
- //private final boolean showFlatBrowsePane;
/**
* Construct a new ItemSearchPage
@@ -80,18 +79,13 @@ public class ItemSearchPage extends CMSPage {
addGlobalStateParam(new StringParameter(ItemSearchPopup.WIDGET_PARAM));
addGlobalStateParam(new StringParameter("searchWidget"));
- //showFlatBrowsePane = s_conf.getItemSearchFlatBrowsePaneEnable();
-
-
m_sectionId = new BigDecimalParameter(CONTENT_SECTION);
addGlobalStateParam(m_sectionId);
+ m_flatBrowse = getFlatBrowsePane();
m_browse = getBrowsePane();
-// if (showFlatBrowsePane) {
-// m_flatBrowse = getFlatBrowsePane();
-// }
m_search = getSearchPane();
-// m_create = getCreatePane();
+ m_create = getCreatePane();
m_tabbedPane = createTabbedPane();
m_tabbedPane.setIdAttr("page-body");
@@ -102,17 +96,21 @@ public class ItemSearchPage extends CMSPage {
final PageState state = event.getPageState();
final String query = (String) state.getValue(new StringParameter(ItemSearchPopup.QUERY));
-
+
if ((query == null) || query.isEmpty()) {
m_tabbedPane.setSelectedIndex(state, 1);
} else {
m_tabbedPane.setSelectedIndex(state, 0);
}
- //if (showFlatBrowsePane) {
- // m_tabbedPane.setTabVisible(state, 0, false);
- // m_tabbedPane.setSelectedIndex(state, 1);
- //}
+ BigDecimal typeParam = (BigDecimal) state.getValue(new BigDecimalParameter(ItemSearch.SINGLE_TYPE_PARAM));
+ if (typeParam == null) {
+ m_tabbedPane.setTabVisible(state, m_create, false);
+ m_create.setVisible(state, false);
+ } else {
+ m_tabbedPane.setTabVisible(state, m_create, true);
+ m_create.setVisible(state, true);
+ }
}
});
@@ -152,13 +150,14 @@ public class ItemSearchPage extends CMSPage {
return m_search;
}
-// protected ItemSearchCreateItemPane getCreatePane() {
-// if(m_create == null) {
-// m_create = new ItemSearchCreateItemPane();
-// }
-//
-// return m_create;
-// }
+ protected ItemSearchCreateItemPane getCreatePane() {
+ if (m_create == null) {
+ m_create = new ItemSearchCreateItemPane(this);
+ }
+
+ return m_create;
+ }
+
/**
* Created the TabbedPane to use for this page. Sets the class attribute for this tabbed pane. The default
* implementation uses a
@@ -172,12 +171,11 @@ public class ItemSearchPage extends CMSPage {
TabbedPane pane = new TabbedPane();
pane.setClassAttr(XSL_CLASS);
- //if (showFlatBrowsePane) {
- addToPane(pane, "flatBrowse", getFlatBrowsePane());
- //}
+
+ addToPane(pane, "flatBrowse", getFlatBrowsePane());
addToPane(pane, "browse", getBrowsePane());
addToPane(pane, "search", getSearchPane());
-// addToPane(pane, "create", getCreatePane());
+ addToPane(pane, "create", getCreatePane());
if ("browse".equals(s_conf.getItemSearchDefaultTab())) {
pane.setDefaultPane(m_browse);
@@ -185,14 +183,10 @@ public class ItemSearchPage extends CMSPage {
if ("search".equals(s_conf.getItemSearchDefaultTab())) {
pane.setDefaultPane(m_search);
}
- //if ("flatBrowse".equals(s_conf.getItemSearchDefaultTab()) && showFlatBrowsePane) {
- pane.setDefaultPane(m_flatBrowse);
- //} else {
- pane.setDefaultPane(m_browse);
- //}
- //pane.addActionListener(this);
-// pane.setTabVisible(null, pane, true);
+ //pane.setDefaultPane(m_flatBrowse);
+ pane.setDefaultPane(m_browse);
+
return pane;
}
@@ -258,5 +252,12 @@ public class ItemSearchPage extends CMSPage {
}.run();
}
+
+ protected void setTabActive(final PageState state, final Component component, final boolean value) {
+ m_tabbedPane.setTabVisible(state, component, value);
+ }
+ protected void setTabActive(final PageState state, final int index, final boolean value) {
+ m_tabbedPane.setTabVisible(state, index, value);
+ }
}
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/authoring/NewItemForm.java b/ccm-cms/src/com/arsdigita/cms/ui/authoring/NewItemForm.java
index 5c3608f13..f83de4a1c 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/authoring/NewItemForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/authoring/NewItemForm.java
@@ -21,6 +21,7 @@ package com.arsdigita.cms.ui.authoring;
import com.arsdigita.bebop.BoxPanel;
import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.Label;
+import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.event.PrintListener;
@@ -72,20 +73,21 @@ public abstract class NewItemForm extends Form {
*
*/
public NewItemForm(String name) {
- super(name, new BoxPanel(BoxPanel.HORIZONTAL));
+ //super(name, new BoxPanel(BoxPanel.HORIZONTAL));
+ super(name, new BoxPanel(BoxPanel.VERTICAL));
setIdAttr("new_item_form");
- BoxPanel panel = (BoxPanel) getPanel();
+ BoxPanel panel = new BoxPanel(BoxPanel.HORIZONTAL);//(BoxPanel) getPanel();
panel.setWidth("2%");
panel.setBorder(0);
m_emptyLabel = new Label(globalize("cms.ui.authoring.no_types_registered"), false);
m_emptyLabel.setIdAttr("empty_label");
- add(m_emptyLabel);
+ panel.add(m_emptyLabel);
m_createLabel = new Label(globalize("cms.ui.authoring.create_new"), false);
m_createLabel.setIdAttr("create_label");
- add(m_createLabel);
+ panel.add(m_createLabel);
m_typeWidget = new SingleSelect(new BigDecimalParameter(TYPE_ID));
try {
@@ -162,11 +164,12 @@ public abstract class NewItemForm extends Form {
throw new UncheckedWrapperException("Too many listeners: " + e.getMessage(), e);
}
- add(m_typeWidget);
+ panel.add(m_typeWidget);
m_submit = new Submit("new", globalize("cms.ui.authoring.go"));
- add(m_submit);
-
+ panel.add(m_submit);
+
+ add(panel);
}
public abstract ContentSection getContentSection(PageState state);
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/folder/FlatFolderPicker.java b/ccm-cms/src/com/arsdigita/cms/ui/folder/FlatFolderPicker.java
index 495093dda..d7b5b7f4d 100644
--- a/ccm-cms/src/com/arsdigita/cms/ui/folder/FlatFolderPicker.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/folder/FlatFolderPicker.java
@@ -7,21 +7,36 @@ package com.arsdigita.cms.ui.folder;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.form.Option;
import com.arsdigita.bebop.form.SingleSelect;
-import com.arsdigita.persistence.DataCollection;
-import com.arsdigita.persistence.OID;
-import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.cms.CMS;
+import com.arsdigita.cms.ContentSection;
+import com.arsdigita.cms.Folder;
+import com.arsdigita.cms.ItemCollection;
/**
*
* @author Sören Bernstein (quasimodo)
+ * @author Jens Pelzetter
+ * @version $Id$
*/
public class FlatFolderPicker extends AbstractFolderPicker {
-
+
public FlatFolderPicker(String name) {
super(name);
}
-
- protected void addOptions(PageState state, SingleSelect target) {
+
+ protected void addOptions(PageState state, SingleSelect target) {
+ target.addOption(new Option(null, ""));
+
+ final ContentSection section = CMS.getContext().getContentSection();
+ //final String sectionName = section.getName();
+ final Folder root = section.getRootFolder();
+
+ final String path = ""; // String.format("%s:", sectionName);
+
+ //addFolders(target, path, root.getChildren().addEqualsFilter("objectType", Folder.BASE_DATA_OBJECT_TYPE));
+ addFolder(target, path, root);
+
+
// DataCollection terms = SessionManager.getSession()
// .retrieve(Term.BASE_DATA_OBJECT_TYPE);
// terms.addPath("model.id");
@@ -39,5 +54,30 @@ public class FlatFolderPicker extends AbstractFolderPicker {
// terms.get("domain.title") + " -> " +
// terms.get("model.name")));
// }
- }
+ }
+
+ private void addFolders(final SingleSelect target, final String path, ItemCollection folders) {
+ while (folders.next()) {
+ addFolder(target, path, (Folder) folders.getContentItem());
+ }
+ }
+
+ private void addFolder(final SingleSelect target, final String prefix, final Folder folder) {
+ final String path;
+ if ("/".equals(folder.getName()) || (prefix == null) || prefix.isEmpty() || prefix.endsWith("/")) {
+ path = String.format("%s%s", prefix, folder.getName());
+ } else {
+ path = String.format("%s/%s", prefix, folder.getName());
+ }
+
+ target.addOption(new Option(folder.getID().toString(), path));
+
+ final ItemCollection children = folder.getChildren();
+ children.addEqualsFilter("objectType", Folder.BASE_DATA_OBJECT_TYPE);
+
+ if (!children.isEmpty()) {
+ addFolders(target, path, children);
+ }
+ }
+
}
diff --git a/ccm-core/src/com/arsdigita/packaging/Upgrade.java b/ccm-core/src/com/arsdigita/packaging/Upgrade.java
index 2a74448c8..d59cfc8e1 100755
--- a/ccm-core/src/com/arsdigita/packaging/Upgrade.java
+++ b/ccm-core/src/com/arsdigita/packaging/Upgrade.java
@@ -55,33 +55,18 @@ class Upgrade extends Command {
private static final Logger logger = Logger.getLogger(Upgrade.class);
private static final Options s_options = getOptions();
-
private String m_from;
private String m_to;
private final List m_scripts;
static {
logger.debug("Static initalizer starting...");
- s_options.addOption
- (OptionBuilder
- .isRequired()
- .hasArg()
- .withLongOpt("from-version")
- .withDescription("Upgrade from version VERSION")
- .create());
- s_options.addOption
- (OptionBuilder
- .isRequired()
- .hasArg()
- .withLongOpt("to-version")
- .withDescription("Upgrade to version VERSION")
- .create());
- s_options.addOption
- (OptionBuilder
- .hasArg()
- .withLongOpt("parameters")
- .withDescription("Parameters to pass to upgrade scripts")
- .create());
+ s_options.addOption(OptionBuilder.isRequired().hasArg().withLongOpt("from-version").withDescription(
+ "Upgrade from version VERSION").create());
+ s_options.addOption(OptionBuilder.isRequired().hasArg().withLongOpt("to-version").withDescription(
+ "Upgrade to version VERSION").create());
+ s_options.addOption(OptionBuilder.hasArg().withLongOpt("parameters").withDescription(
+ "Parameters to pass to upgrade scripts").create());
logger.debug("Static initalizer finished.");
}
@@ -147,8 +132,7 @@ class Upgrade extends Command {
final String spec = key + ".upgrade";
- final InputStream in = Thread.currentThread().getContextClassLoader
- ().getResourceAsStream(spec);
+ final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(spec);
if (in == null) {
System.err.println("Cannot find " + spec);
@@ -158,18 +142,19 @@ class Upgrade extends Command {
XML.parse(in, new Parser());
if (m_scripts.isEmpty()) {
- System.err.println("No appropriate upgrades found; make sure " +
- "that your 'to' and 'from' versions match " +
- "the intended upgrade exactly");
+ System.err.println("No appropriate upgrades found; make sure " + "that your 'to' and 'from' versions match "
+ + "the intended upgrade exactly");
return false;
} else {
- System.out.println("Number of scripts: " + m_scripts.size() );
+ System.out.println("Number of scripts: " + m_scripts.size());
}
- Iterator iter = m_scripts.iterator();
- while (iter.hasNext()) {
+ //Iterator iter = m_scripts.iterator();
+ //while (iter.hasNext()) {
+ for (int k = 0; k < m_scripts.size(); k++) {
- final String[] parts = (String[]) iter.next();
+ System.out.printf("Running script %d/%d\n", (k + 1), m_scripts.size());
+ final String[] parts = (String[]) m_scripts.get(k); //(String[]) iter.next();
final String classname = parts[0];
final String sql = parts[1];
@@ -183,7 +168,7 @@ class Upgrade extends Command {
try {
method = clacc.getMethod("main",
- new Class[] {String[].class});
+ new Class[]{String[].class});
} catch (NoSuchMethodException nsme) {
throw new UncheckedWrapperException(nsme);
} catch (SecurityException se) {
@@ -194,7 +179,7 @@ class Upgrade extends Command {
LinkedList ll = new LinkedList();
if (params != null) {
for (int i = 0; i < params.length; i++) {
- String[] split = StringUtils.split(params[i],',');
+ String[] split = StringUtils.split(params[i], ',');
for (int j = 0; j < split.length; j++) {
ll.add(split[j]);
}
@@ -202,7 +187,7 @@ class Upgrade extends Command {
}
try {
- method.invoke(null, new Object[] {ll.toArray(new String[] {})});
+ method.invoke(null, new Object[]{ll.toArray(new String[]{})});
} catch (IllegalAccessException iae) {
throw new UncheckedWrapperException(iae);
} catch (InvocationTargetException ite) {
@@ -212,11 +197,9 @@ class Upgrade extends Command {
} else if (sql != null) {
final SchemaLoader loader = new SchemaLoader(sql);
- System.out.println("Running SQL upgrade " + loader + ", " +
- "loaded from the classpath");
+ System.out.println("Running SQL upgrade " + loader + ", " + "loaded from the classpath");
- final Connection conn = Connections.acquire
- (RuntimeConfig.getConfig().getJDBCURL());
+ final Connection conn = Connections.acquire(RuntimeConfig.getConfig().getJDBCURL());
loader.run(conn);
@@ -235,9 +218,10 @@ class Upgrade extends Command {
}
/**
- *
+ *
*/
private class Parser extends DefaultHandler {
+
private String m_version;
@Override
@@ -265,14 +249,12 @@ class Upgrade extends Command {
final String sql = attrs.getValue(uri, "sql");
if (classname == null && sql == null
- || classname != null && sql != null) {
- throw new IllegalArgumentException
- ("The script element must have a 'class' " +
- "argument or a 'sql' argument; it may not " +
- "have both");
+ || classname != null && sql != null) {
+ throw new IllegalArgumentException("The script element must have a 'class' "
+ + "argument or a 'sql' argument; it may not " + "have both");
}
- m_scripts.add(new String[] {classname, sql});
+ m_scripts.add(new String[]{classname, sql});
}
}
}
@@ -285,5 +267,6 @@ class Upgrade extends Command {
m_version = null;
}
}
+
}
}