projects
/
lgpl
/
argeo-commons.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6b2c3e5
)
Improve UX part framework
author
Mathieu Baudier <mbaudier@argeo.org>
Mon, 24 Oct 2022 06:35:40 +0000
(08:35 +0200)
committer
Mathieu Baudier <mbaudier@argeo.org>
Mon, 24 Oct 2022 06:35:40 +0000
(08:35 +0200)
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java
patch
|
blob
|
history
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractTabularPart.java
patch
|
blob
|
history
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/Column.java
patch
|
blob
|
history
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DataView.java
patch
|
blob
|
history
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/HierarchicalPart.java
patch
|
blob
|
history
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/TabularPart.java
patch
|
blob
|
history
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/AbstractSwtView.java
patch
|
blob
|
history
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTableView.java
patch
|
blob
|
history
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTreeView.java
patch
|
blob
|
history
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java
index 958fcde6a32d1fad4306c51753fbd49b5eb4e226..49856efb53d0c5e587eaaf0b7c32af9872c45193 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractDataPart.java
@@
-48,6
+48,12
@@
public abstract class AbstractDataPart<INPUT, T> implements DataPart<INPUT, T> {
}
}
}
}
+ protected void notifyItemCountChange() {
+ for (DataView<INPUT, T> view : views.keySet()) {
+ view.notifyItemCountChange();
+ }
+ }
+
@Override
public void addView(DataView<INPUT, T> view) {
views.put(view, new Object());
@Override
public void addView(DataView<INPUT, T> view) {
views.put(view, new Object());
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractTabularPart.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractTabularPart.java
index 7e63ea85bc7a27b9b77ec83f6ab33bb0c3e6b55e..400f9c8853da679032182ada53fd0ec55ff1ba84 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractTabularPart.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractTabularPart.java
@@
-14,6
+14,7
@@
public abstract class AbstractTabularPart<INPUT, T> extends AbstractDataPart<INP
return columns.get(index);
}
return columns.get(index);
}
+ @Override
public void addColumn(Column<T> column) {
columns.add(column);
}
public void addColumn(Column<T> column) {
columns.add(column);
}
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/Column.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/Column.java
index 973fddb5a8504a070c2968fe2643e711de6181be..9ee141c9040b0b60d39318f00534855f41cc327e 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/Column.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/Column.java
@@
-2,6
+2,8
@@
package org.argeo.cms.ux.widgets;
import org.argeo.api.cms.ux.CmsIcon;
import org.argeo.api.cms.ux.CmsIcon;
+/** A column in a data representation. */
+@FunctionalInterface
public interface Column<T> {
String getText(T model);
public interface Column<T> {
String getText(T model);
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DataView.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DataView.java
index 9768c68ec9a94e9feeb5cd006c48ec5f2bbd674b..311cf924ed74e265b231bab09f2eee855389277b 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DataView.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/DataView.java
@@
-2,4
+2,6
@@
package org.argeo.cms.ux.widgets;
public interface DataView<INPUT,TYPE> {
void refresh();
public interface DataView<INPUT,TYPE> {
void refresh();
+
+ void notifyItemCountChange();
}
}
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/HierarchicalPart.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/HierarchicalPart.java
index 372c295dcfb34c34cf44bfbfe4efd14743037c5a..1f42c6aa5fb384840e846e557226c4762dd13ec7 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/HierarchicalPart.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/HierarchicalPart.java
@@
-4,6
+4,7
@@
import java.util.List;
import org.argeo.api.cms.ux.CmsIcon;
import org.argeo.api.cms.ux.CmsIcon;
+/** A hierarchical representation of data. */
public interface HierarchicalPart<T> extends ColumnsPart<T, T> {
List<T> getChildren(T parent);
public interface HierarchicalPart<T> extends ColumnsPart<T, T> {
List<T> getChildren(T parent);
diff --git
a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/TabularPart.java
b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/TabularPart.java
index 6adc0c3e6c1ffdf37c47c97a62793611aaec4765..2ed077c42778226d01c82521cca5a68946c21554 100644
(file)
--- a/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/TabularPart.java
+++ b/
org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/TabularPart.java
@@
-1,5
+1,6
@@
package org.argeo.cms.ux.widgets;
package org.argeo.cms.ux.widgets;
+/** A tabular presentation of data. */
public interface TabularPart<INPUT, T> extends ColumnsPart<INPUT, T> {
int getItemCount();
public interface TabularPart<INPUT, T> extends ColumnsPart<INPUT, T> {
int getItemCount();
@@
-7,5
+8,7
@@
public interface TabularPart<INPUT, T> extends ColumnsPart<INPUT, T> {
Column<T> getColumn(int index);
Column<T> getColumn(int index);
+ void addColumn(Column<T> column);
+
int getColumnCount();
}
int getColumnCount();
}
diff --git
a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/AbstractSwtView.java
b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/AbstractSwtView.java
index efdc45a8a3b41b43b3f1504e563d24ab7ee604b5..e3a268153eba21a946ed5e42be5cfe18b4b404f6 100644
(file)
--- a/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/AbstractSwtView.java
+++ b/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/AbstractSwtView.java
@@
-3,6
+3,7
@@
package org.argeo.cms.swt.widgets;
import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.ux.widgets.DataPart;
import org.argeo.cms.ux.widgets.DataView;
import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.ux.widgets.DataPart;
import org.argeo.cms.ux.widgets.DataView;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
@@
-16,8
+17,8
@@
public abstract class AbstractSwtView<INPUT, TYPE> extends Composite implements
protected final SelectionListener selectionListener;
@SuppressWarnings("unchecked")
protected final SelectionListener selectionListener;
@SuppressWarnings("unchecked")
- public AbstractSwtView(Composite parent,
int style,
DataPart<INPUT, TYPE> dataPart) {
- super(parent,
style
);
+ public AbstractSwtView(Composite parent, DataPart<INPUT, TYPE> dataPart) {
+ super(parent,
SWT.NONE
);
setLayout(CmsSwtUtils.noSpaceGridLayout());
this.dataPart = dataPart;
setLayout(CmsSwtUtils.noSpaceGridLayout());
this.dataPart = dataPart;
diff --git
a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTableView.java
b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTableView.java
index b136f36e16c73cb03ba615160a453f5c4fa14ff3..a58a5a47856aebe5350b47f9879227b3f1255103 100644
(file)
--- a/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTableView.java
+++ b/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTableView.java
@@
-22,10
+22,10
@@
public class SwtTableView<INPUT, T> extends AbstractSwtView<INPUT, T> {
private CmsSwtTheme theme;
public SwtTableView(Composite parent, int style, TabularPart<INPUT, T> tabularPart) {
private CmsSwtTheme theme;
public SwtTableView(Composite parent, int style, TabularPart<INPUT, T> tabularPart) {
- super(parent,
style,
tabularPart);
+ super(parent, tabularPart);
theme = CmsSwtUtils.getCmsTheme(parent);
theme = CmsSwtUtils.getCmsTheme(parent);
- table = new Table(this, SWT.VIRTUAL |
SWT.BORDER
);
+ table = new Table(this, SWT.VIRTUAL |
style
);
table.setLinesVisible(true);
table.setLayoutData(CmsSwtUtils.fillAll());
table.setLinesVisible(true);
table.setLayoutData(CmsSwtUtils.fillAll());
@@
-75,6
+75,11
@@
public class SwtTableView<INPUT, T> extends AbstractSwtView<INPUT, T> {
}
}
}
}
+ @Override
+ public void notifyItemCountChange() {
+ table.setItemCount(tabularPart.getItemCount());
+ }
+
protected Table getTable() {
return table;
}
protected Table getTable() {
return table;
}
diff --git
a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTreeView.java
b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTreeView.java
index 79543e9f89d938f583a9c05d3c1a5aba4bfe5b37..a0ac24836c4cb3aa393f11e1d868e91972501be3 100644
(file)
--- a/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTreeView.java
+++ b/
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtTreeView.java
@@
-22,10
+22,10
@@
public class SwtTreeView<T> extends AbstractSwtView<T, T> {
private CmsSwtTheme theme;
public SwtTreeView(Composite parent, int style, HierarchicalPart<T> hierarchicalPart) {
private CmsSwtTheme theme;
public SwtTreeView(Composite parent, int style, HierarchicalPart<T> hierarchicalPart) {
- super(parent,
style,
hierarchicalPart);
+ super(parent, hierarchicalPart);
theme = CmsSwtUtils.getCmsTheme(parent);
theme = CmsSwtUtils.getCmsTheme(parent);
- tree = new Tree(this,
SWT.BORDER
);
+ tree = new Tree(this,
style
);
tree.setLayoutData(CmsSwtUtils.fillAll());
this.hierarchicalPart = hierarchicalPart;
tree.setLayoutData(CmsSwtUtils.fillAll());
this.hierarchicalPart = hierarchicalPart;
@@
-82,6
+82,14
@@
public class SwtTreeView<T> extends AbstractSwtView<T, T> {
new TreeItem(item, SWT.NONE);
return item;
}
new TreeItem(item, SWT.NONE);
return item;
}
+
+
+
+ @Override
+ public void notifyItemCountChange() {
+ // TODO what to update ?
+
+ }
protected Tree getTree() {
return tree;
protected Tree getTree() {
return tree;