Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/pasteInNewTable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dataprovider/RowHeaderDataProvider.java')
-rw-r--r--sandbox/pasteInNewTable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dataprovider/RowHeaderDataProvider.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/sandbox/pasteInNewTable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dataprovider/RowHeaderDataProvider.java b/sandbox/pasteInNewTable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dataprovider/RowHeaderDataProvider.java
new file mode 100644
index 00000000000..e1d733ba457
--- /dev/null
+++ b/sandbox/pasteInNewTable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dataprovider/RowHeaderDataProvider.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Original authors and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Original authors and others - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.papyrus.infra.nattable.dataprovider;
+
+import org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisconfiguration.AbstractHeaderAxisConfiguration;
+import org.eclipse.papyrus.infra.nattable.utils.HeaderAxisConfigurationManagementUtils;
+
+/**
+ *
+ * this manager allows to manage the rows of the table. It provides
+ * a row header with 0,1 or 2 columns
+ *
+ */
+public class RowHeaderDataProvider extends AbstractHeaderDataProvider {
+
+ private int axisCount;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param manager
+ * the table manager
+ */
+ public RowHeaderDataProvider(final INattableModelManager manager) {
+ super(manager);
+ }
+
+ /**
+ *
+ * @see org.eclipse.nebula.widgets.nattable.data.IDataProvider#getColumnCount()
+ *
+ * @return
+ *
+ */
+ @Override
+ public int getColumnCount() {
+ return this.axisCount;
+ }
+
+ /**
+ *
+ * @see org.eclipse.nebula.widgets.nattable.data.IDataProvider#getDataValue(int, int)
+ *
+ * @param columnIndex
+ * @param rowIndex
+ * @return
+ */
+ public Object getDataValue(final int columnIndex, final int rowIndex) {
+ switch(this.axisCount) {
+ case 0:
+ return null;
+ case 1:
+ if(this.displayFilter) {
+ return null;//FIXME not tested
+ } else if(this.displayIndex) {
+ return getAxisIndex(rowIndex);
+ } else if(this.displayLabel) {
+ return this.manager.getRowElement(rowIndex);
+ }
+ case 2:
+ if(!this.displayFilter) {
+ if(columnIndex == 0) {
+ return getAxisIndex(rowIndex);
+ }
+ if(columnIndex == 1) {
+ return this.manager.getRowElement(rowIndex);
+ }
+ } else {
+ //FIXME not tested
+ }
+ break;
+ case 3:
+ if(!this.displayFilter) {
+ if(columnIndex == 0) {
+ return getAxisIndex(rowIndex);
+ }
+ if(columnIndex == 1) {
+ return this.manager.getRowElement(rowIndex);
+ }
+ if(columnIndex == 2) {
+ //FIXME not tested
+ }
+ }
+ break;
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.nebula.widgets.nattable.data.IDataProvider#setDataValue(int, int, java.lang.Object)
+ *
+ * @param columnIndex
+ * @param rowIndex
+ * @param newValue
+ */
+ public void setDataValue(final int columnIndex, final int rowIndex, final Object newValue) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.nattable.dataprovider.AbstractHeaderDataProvider#getAxisConfiguration()
+ *
+ * @return
+ */
+ @Override
+ protected AbstractHeaderAxisConfiguration getAxisConfiguration() {
+ return HeaderAxisConfigurationManagementUtils.getAbstractHeaderAxisConfigurationUsedInTable(this.manager.getTable());
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.nattable.dataprovider.AbstractHeaderDataProvider#updateAxisCount()
+ *
+ */
+ @Override
+ protected void updateAxisCount() {
+ int newAxisCOunt = 0;
+ if(this.displayFilter) {
+ //newAxisCOunt++; //we ignore this value for rows headers
+ }
+ if(this.displayIndex) {
+ newAxisCOunt++;
+ }
+ if(this.displayLabel) {
+ newAxisCOunt++;
+ }
+ this.axisCount = newAxisCOunt;
+ }
+}

Back to the top