From 6bf4288e696ba2f88fc8d5a11c701eb223115fac Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 2 Aug 2013 08:43:54 +0000 Subject: [PATCH] =?UTF-8?q?Weitere=20Erg=C3=A4nzung=20um=20das=20Nebenl?= =?UTF-8?q?=C3=A4ufigskeitsproblem=20im=20Admin-Tab=20zu=20beheben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2285 8810af33-2d31-482b-a856-94f89814c4df --- .../MultiInstanceApplicationPane.java | 109 +++++++++++++----- 1 file changed, 79 insertions(+), 30 deletions(-) diff --git a/ccm-core/src/com/arsdigita/ui/admin/applications/MultiInstanceApplicationPane.java b/ccm-core/src/com/arsdigita/ui/admin/applications/MultiInstanceApplicationPane.java index 86e85163f..2493dff79 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/applications/MultiInstanceApplicationPane.java +++ b/ccm-core/src/com/arsdigita/ui/admin/applications/MultiInstanceApplicationPane.java @@ -31,12 +31,14 @@ import com.arsdigita.util.LockableImpl; import com.arsdigita.web.Application; import com.arsdigita.web.ApplicationCollection; import com.arsdigita.web.ApplicationType; +import java.util.ArrayList; +import java.util.List; /** - * Pane for multi instance applications. Additional to the data provided by {@link BaseApplicationPane} it shows a - * table of all instances of the application type and a form for creating new instances of the application type. - * - * @param + * Pane for multi instance applications. Additional to the data provided by {@link BaseApplicationPane} it shows a table + * of all instances of the application type and a form for creating new instances of the application type. + * + * @param * @author Jens Pelzetter * @version $Id$ */ @@ -86,66 +88,113 @@ public class MultiInstanceApplicationPane extends BaseApp private class ApplicationInstancesTableModelBuilder extends LockableImpl implements TableModelBuilder { - private final ApplicationCollection applications; + //private final ApplicationCollection applications; + private final String appType; - public ApplicationInstancesTableModelBuilder(final ApplicationCollection applications) { - super(); - - this.applications = applications; - } - + //public ApplicationInstancesTableModelBuilder(final ApplicationCollection applications) { + // super(); + // + // this.applications = applications; + //} public ApplicationInstancesTableModelBuilder(final String appType) { super(); - - this.applications = Application.retrieveAllApplications(appType); + + //this.applications = Application.retrieveAllApplications(appType); + this.appType = appType; } public TableModel makeModel(final Table table, final PageState state) { - return new ApplicationInstancesTableModel(table, applications); + return new ApplicationInstancesTableModel(table, appType); } - } private class ApplicationInstancesTableModel implements TableModel { private final Table table; - private final ApplicationCollection applications; + //private final ApplicationCollection applications; + private final List appData = new ArrayList(); + private int currentIndex = -1; - public ApplicationInstancesTableModel(final Table table, final ApplicationCollection applications) { + //public ApplicationInstancesTableModel(final Table table, final ApplicationCollection applications) { + // this.table = table; + // this.applications = applications; + //} + public ApplicationInstancesTableModel(final Table table, final String appType) { this.table = table; - this.applications = applications; + final ApplicationCollection applications = Application.retrieveAllApplications(appType); + while (applications.next()) { + addAppData(applications.getApplication()); + } + } + + private void addAppData(final Application application) { + appData.add(new AppData(application.getTitle(), + application.getDescription(), + application.getPath())); } public int getColumnCount() { return table.getColumnModel().size(); } - public boolean nextRow() { - if (applications.isAfterLast()) { - applications.rewind(); - } - return applications.next(); + public boolean nextRow() { + currentIndex++; + return currentIndex < appData.size(); } public Object getElementAt(final int columnIndex) { switch (columnIndex) { case COL_TITLE: - return applications.getApplication().getTitle(); + //return applications.getApplication().getTitle(); + return appData.get(currentIndex).getTitle(); case COL_DESC: - return applications.getApplication().getDescription(); + //return applications.getApplication().getDescription(); + return appData.get(currentIndex).getDescription(); case COL_URL: - return applications.getApplication().getPath(); + //return applications.getApplication().getPath(); + return appData.get(currentIndex).getPath(); default: return null; } } public Object getKeyAt(final int columnIndex) { - if (SessionManager.getSession().getTransactionContext().inTxn()) { - SessionManager.getSession().getTransactionContext().commitTxn(); - } - return applications.getApplication().getPath(); + //if (SessionManager.getSession().getTransactionContext().inTxn()) { + // SessionManager.getSession().getTransactionContext().commitTxn(); + //} + //return applications.getApplication().getPath(); + return appData.get(currentIndex).getPath(); + } + } + + private class AppData { + + private final String title; + private final String description; + private final String path; + + public AppData() { + title = ""; + description = ""; + path = ""; } + public AppData(final String title, final String description, final String path) { + this.title = title; + this.description = description; + this.path = path; + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public String getPath() { + return path; + } } }