Line 46... |
Line 46... |
46 |
import org.openconcerto.sql.model.SQLTable;
|
46 |
import org.openconcerto.sql.model.SQLTable;
|
47 |
import org.openconcerto.sql.model.Where;
|
47 |
import org.openconcerto.sql.model.Where;
|
48 |
import org.openconcerto.sql.model.graph.Path;
|
48 |
import org.openconcerto.sql.model.graph.Path;
|
49 |
import org.openconcerto.sql.preferences.SQLPreferences;
|
49 |
import org.openconcerto.sql.preferences.SQLPreferences;
|
50 |
import org.openconcerto.sql.request.ListSQLRequest;
|
50 |
import org.openconcerto.sql.request.ListSQLRequest;
|
- |
|
51 |
import org.openconcerto.sql.ui.light.CustomRowEditor;
|
51 |
import org.openconcerto.sql.users.UserManager;
|
52 |
import org.openconcerto.sql.users.UserManager;
|
52 |
import org.openconcerto.sql.users.rights.UserRightsManager;
|
53 |
import org.openconcerto.sql.users.rights.UserRightsManager;
|
53 |
import org.openconcerto.sql.view.EditFrame;
|
54 |
import org.openconcerto.sql.view.EditFrame;
|
54 |
import org.openconcerto.sql.view.EditPanel;
|
55 |
import org.openconcerto.sql.view.EditPanel;
|
55 |
import org.openconcerto.sql.view.EditPanel.EditMode;
|
56 |
import org.openconcerto.sql.view.EditPanel.EditMode;
|
Line 61... |
Line 62... |
61 |
import org.openconcerto.sql.view.list.RowAction.PredicateRowAction;
|
62 |
import org.openconcerto.sql.view.list.RowAction.PredicateRowAction;
|
62 |
import org.openconcerto.sql.view.list.SQLTableModelSource;
|
63 |
import org.openconcerto.sql.view.list.SQLTableModelSource;
|
63 |
import org.openconcerto.ui.light.ActivationOnSelectionControler;
|
64 |
import org.openconcerto.ui.light.ActivationOnSelectionControler;
|
64 |
import org.openconcerto.ui.light.ColumnSpec;
|
65 |
import org.openconcerto.ui.light.ColumnSpec;
|
65 |
import org.openconcerto.ui.light.ColumnsSpec;
|
66 |
import org.openconcerto.ui.light.ColumnsSpec;
|
66 |
import org.openconcerto.ui.light.CustomEditorProvider;
|
- |
|
67 |
import org.openconcerto.ui.light.LightController;
|
67 |
import org.openconcerto.ui.light.LightController;
|
68 |
import org.openconcerto.ui.light.LightUIButtonUnmanaged;
|
68 |
import org.openconcerto.ui.light.LightUIButtonUnmanaged;
|
69 |
import org.openconcerto.ui.light.LightUIComboBox;
|
69 |
import org.openconcerto.ui.light.LightUIComboBox;
|
70 |
import org.openconcerto.ui.light.LightUIElement;
|
70 |
import org.openconcerto.ui.light.LightUIElement;
|
71 |
import org.openconcerto.ui.light.LightUILine;
|
71 |
import org.openconcerto.ui.light.LightUILine;
|
Line 97... |
Line 97... |
97 |
import java.util.Calendar;
|
97 |
import java.util.Calendar;
|
98 |
import java.util.Collections;
|
98 |
import java.util.Collections;
|
99 |
import java.util.Date;
|
99 |
import java.util.Date;
|
100 |
import java.util.HashSet;
|
100 |
import java.util.HashSet;
|
101 |
import java.util.List;
|
101 |
import java.util.List;
|
102 |
import java.util.Map;
|
- |
|
103 |
import java.util.Set;
|
102 |
import java.util.Set;
|
104 |
|
103 |
|
105 |
import javax.swing.AbstractAction;
|
104 |
import javax.swing.AbstractAction;
|
106 |
import javax.swing.ImageIcon;
|
105 |
import javax.swing.ImageIcon;
|
107 |
import javax.swing.JFrame;
|
106 |
import javax.swing.JFrame;
|
Line 765... |
Line 764... |
765 |
editFactureFrame.setState(JFrame.NORMAL);
|
764 |
editFactureFrame.setState(JFrame.NORMAL);
|
766 |
editFactureFrame.setVisible(true);
|
765 |
editFactureFrame.setVisible(true);
|
767 |
}
|
766 |
}
|
768 |
|
767 |
|
769 |
@Override
|
768 |
@Override
|
770 |
protected Map<String, CustomEditorProvider> _getDefaultCustomEditorProvider(final Configuration configuration, final SQLRowAccessor sqlRow, final String sessionSecurityToken)
|
769 |
public List<CustomRowEditor> getCustomRowEditors(Configuration configuration, String sessionToken) {
|
771 |
throws IllegalArgumentException {
|
- |
|
772 |
final Map<String, CustomEditorProvider> map = super._getDefaultCustomEditorProvider(configuration, sqlRow, sessionSecurityToken);
|
770 |
List<CustomRowEditor> map = super.getCustomRowEditors(configuration, sessionToken);
|
773 |
map.put("sales.quote.items.list", new CustomEditorProvider() {
|
771 |
map.add(new CustomRowEditor("sales.quote.items.list") {
|
774 |
|
772 |
|
775 |
@Override
|
773 |
@Override
|
776 |
public LightUIElement createUIElement(final String id) {
|
774 |
public LightUIElement createUIElement() {
|
777 |
|
- |
|
778 |
final ColumnSpec c1 = new ColumnSpec("sales.quote.item.style", StringWithId.class, "Style", new StringWithId(2, "Normal"), true, new LightUIComboBox("sales.quote.item.style"));
|
775 |
final ColumnSpec c1 = new ColumnSpec("sales.quote.item.style", StringWithId.class, "Style", new StringWithId(2, "Normal"), true, new LightUIComboBox("sales.quote.item.style"));
|
779 |
final ColumnSpec c2 = new ColumnSpec("sales.quote.item.code", String.class, "Code", "", true, new LightUITextField("sales.quote.item.code"));
|
776 |
final ColumnSpec c2 = new ColumnSpec("sales.quote.item.code", String.class, "Code", "", true, new LightUITextField("sales.quote.item.code"));
|
780 |
final ColumnSpec c3 = new ColumnSpec("sales.quote.item.label", String.class, "Nom", "", true, new LightUITextField("sales.quote.item.name"));
|
777 |
final ColumnSpec c3 = new ColumnSpec("sales.quote.item.label", String.class, "Nom", "", true, new LightUITextField("sales.quote.item.name"));
|
781 |
final ColumnSpec c4 = new ColumnSpec("sales.quote.item.description", String.class, "Descriptif", "", true, new LightUITextField("sales.quote.item.description"));
|
778 |
final ColumnSpec c4 = new ColumnSpec("sales.quote.item.description", String.class, "Descriptif", "", true, new LightUITextField("sales.quote.item.description"));
|
782 |
final ColumnSpec c5 = new ColumnSpec("sales.quote.item.purchase.unit.price", BigDecimal.class, "P.U. Achat HT", new BigDecimal(0), true,
|
779 |
final ColumnSpec c5 = new ColumnSpec("sales.quote.item.purchase.unit.price", BigDecimal.class, "P.U. Achat HT", new BigDecimal(0), true,
|
Line 862... |
Line 859... |
862 |
}
|
859 |
}
|
863 |
}
|
860 |
}
|
864 |
final ColumnsSpec cSpec = new ColumnsSpec(lId, columnsSpec, possibleColumnIds, null);
|
861 |
final ColumnsSpec cSpec = new ColumnsSpec(lId, columnsSpec, possibleColumnIds, null);
|
865 |
cSpec.setAllowMove(true);
|
862 |
cSpec.setAllowMove(true);
|
866 |
cSpec.setAllowResize(true);
|
863 |
cSpec.setAllowResize(true);
|
867 |
final RowSelectionSpec selectionSpec = new RowSelectionSpec(id);
|
864 |
final RowSelectionSpec selectionSpec = new RowSelectionSpec(getItemId());
|
868 |
final TableSpec tSpec = new TableSpec(id, selectionSpec, cSpec);
|
865 |
final TableSpec tSpec = new TableSpec(getItemId(), selectionSpec, cSpec);
|
869 |
tSpec.setColumns(cSpec);
|
866 |
tSpec.setColumns(cSpec);
|
870 |
|
867 |
|
871 |
if (sqlRow != null) {
|
- |
|
872 |
// send: id,value
|
- |
|
873 |
final SQLElement elem = configuration.getDirectory().getElement("DEVIS_ELEMENT");
|
- |
|
874 |
final SQLTable table = elem.getTable();
|
- |
|
875 |
final List<String> fieldsToFetch = new ArrayList<>();
|
- |
|
876 |
for (ColumnSpec cs : columnsSpec) {
|
- |
|
877 |
String colId = cs.getId();
|
868 |
String id = getItemId();
|
878 |
SQLField f = configuration.getFieldMapper().getSQLFieldForItem(colId);
|
- |
|
879 |
if (f != null) {
|
- |
|
880 |
fieldsToFetch.add(f.getName());
|
- |
|
881 |
} else {
|
- |
|
882 |
throw new IllegalStateException("No field in " + table + " for column id " + colId);
|
- |
|
883 |
}
|
- |
|
884 |
}
|
- |
|
885 |
|
- |
|
886 |
final Where where = new Where(table.getField("ID_DEVIS"), "=", sqlRow.getID());
|
- |
|
887 |
final ListSQLRequest req = elem.createListRequest(fieldsToFetch, where, configuration.getShowAs());
|
- |
|
888 |
List<SQLRowValues> fetchedRows = req.getValues();
|
- |
|
889 |
|
- |
|
890 |
List<Row> rows = new ArrayList<>();
|
- |
|
891 |
for (final SQLRowValues vals : fetchedRows) {
|
- |
|
892 |
Row r = new Row(vals.getID(), columnsSpec.size());
|
- |
|
893 |
List<Object> values = new ArrayList<>();
|
- |
|
894 |
for (ColumnSpec cs : columnsSpec) {
|
- |
|
895 |
String colId = cs.getId();
|
- |
|
896 |
SQLField f = configuration.getFieldMapper().getSQLFieldForItem(colId);
|
- |
|
897 |
if (f != null) {
|
- |
|
898 |
Object object = vals.getObject(f.getName());
|
- |
|
899 |
if (object instanceof SQLRowValues) {
|
- |
|
900 |
SQLRowValues sqlRowValues = (SQLRowValues) object;
|
- |
|
901 |
long rowId = sqlRowValues.getIDNumber().longValue();
|
- |
|
902 |
List<SQLField> fieldsToExpand = configuration.getShowAs().getFieldExpand(sqlRowValues.getTable());
|
- |
|
903 |
final StringBuilder b = new StringBuilder();
|
- |
|
904 |
for (SQLField sqlField : fieldsToExpand) {
|
- |
|
905 |
b.append(sqlRowValues.getObject(sqlField.getName()).toString());
|
- |
|
906 |
b.append(' ');
|
- |
|
907 |
}
|
- |
|
908 |
object = new StringWithId(rowId, b.toString().trim());
|
- |
|
909 |
}
|
- |
|
910 |
values.add(object);
|
- |
|
911 |
} else {
|
- |
|
912 |
throw new IllegalStateException("No field in " + table + " for column id " + colId);
|
- |
|
913 |
}
|
- |
|
914 |
}
|
- |
|
915 |
r.setValues(values);
|
- |
|
916 |
rows.add(r);
|
- |
|
917 |
}
|
- |
|
918 |
|
- |
|
919 |
TableContent tableContent = new TableContent();
|
- |
|
920 |
tableContent.setRows(rows);
|
- |
|
921 |
// tableContent.setSpec(new RowSpec());
|
- |
|
922 |
tSpec.setContent(tableContent);
|
- |
|
923 |
|
- |
|
924 |
}
|
- |
|
925 |
|
- |
|
926 |
final LightUITable eList = new LightUITable(id);
|
869 |
final LightUITable eList = new LightUITable(id);
|
927 |
eList.setTableSpec(tSpec);
|
870 |
eList.setTableSpec(tSpec);
|
928 |
|
871 |
|
929 |
LightUIPanel panel = new LightUIPanel("sales.quote.items.list");
|
872 |
LightUIPanel panel = new LightUIPanel("sales.quote.items.list");
|
930 |
panel.setGridWidth(1);
|
873 |
panel.setGridWidth(1);
|
Line 972... |
Line 915... |
972 |
|
915 |
|
973 |
//
|
916 |
//
|
974 |
panel.addChild(listLine);
|
917 |
panel.addChild(listLine);
|
975 |
|
918 |
|
976 |
return panel;
|
919 |
return panel;
|
- |
|
920 |
|
- |
|
921 |
}
|
- |
|
922 |
|
- |
|
923 |
@Override
|
- |
|
924 |
public void fillFrom(LightUIElement uiElement, SQLRowAccessor sqlRow) {
|
- |
|
925 |
LightUIPanel p = (LightUIPanel) uiElement;
|
- |
|
926 |
LightUITable ltable = p.getFirstChild(LightUITable.class);
|
- |
|
927 |
TableSpec tSpec = ltable.getTableSpec();
|
- |
|
928 |
ColumnsSpec columnsSpec = tSpec.getColumns();
|
- |
|
929 |
// send: id,value
|
- |
|
930 |
final SQLElement elem = configuration.getDirectory().getElement("DEVIS_ELEMENT");
|
- |
|
931 |
final SQLTable table = elem.getTable();
|
- |
|
932 |
final List<String> fieldsToFetch = new ArrayList<>();
|
- |
|
933 |
for (ColumnSpec cs : columnsSpec.getColumns()) {
|
- |
|
934 |
String colId = cs.getId();
|
- |
|
935 |
SQLField f = configuration.getFieldMapper().getSQLFieldForItem(colId);
|
- |
|
936 |
if (f != null) {
|
- |
|
937 |
fieldsToFetch.add(f.getName());
|
- |
|
938 |
} else {
|
- |
|
939 |
throw new IllegalStateException("No field in " + table + " for column id " + colId);
|
- |
|
940 |
}
|
- |
|
941 |
}
|
- |
|
942 |
|
- |
|
943 |
final Where where = new Where(table.getField("ID_DEVIS"), "=", sqlRow.getID());
|
- |
|
944 |
final ListSQLRequest req = elem.createListRequest(fieldsToFetch, where, configuration.getShowAs());
|
- |
|
945 |
List<SQLRowValues> fetchedRows = req.getValues();
|
- |
|
946 |
|
- |
|
947 |
List<Row> rows = new ArrayList<>();
|
- |
|
948 |
for (final SQLRowValues vals : fetchedRows) {
|
- |
|
949 |
Row r = new Row(vals.getID(), columnsSpec.getColumns().size());
|
- |
|
950 |
List<Object> values = new ArrayList<>();
|
- |
|
951 |
for (ColumnSpec cs : columnsSpec.getColumns()) {
|
- |
|
952 |
String colId = cs.getId();
|
- |
|
953 |
SQLField f = configuration.getFieldMapper().getSQLFieldForItem(colId);
|
- |
|
954 |
if (f != null) {
|
- |
|
955 |
Object object = vals.getObject(f.getName());
|
- |
|
956 |
if (object instanceof SQLRowValues) {
|
- |
|
957 |
SQLRowValues sqlRowValues = (SQLRowValues) object;
|
- |
|
958 |
long rowId = sqlRowValues.getIDNumber().longValue();
|
- |
|
959 |
List<SQLField> fieldsToExpand = configuration.getShowAs().getFieldExpand(sqlRowValues.getTable());
|
- |
|
960 |
final StringBuilder b = new StringBuilder();
|
- |
|
961 |
for (SQLField sqlField : fieldsToExpand) {
|
- |
|
962 |
b.append(sqlRowValues.getObject(sqlField.getName()).toString());
|
- |
|
963 |
b.append(' ');
|
- |
|
964 |
}
|
- |
|
965 |
object = new StringWithId(rowId, b.toString().trim());
|
- |
|
966 |
}
|
- |
|
967 |
values.add(object);
|
- |
|
968 |
} else {
|
- |
|
969 |
throw new IllegalStateException("No field in " + table + " for column id " + colId);
|
- |
|
970 |
}
|
- |
|
971 |
}
|
- |
|
972 |
r.setValues(values);
|
- |
|
973 |
rows.add(r);
|
- |
|
974 |
}
|
- |
|
975 |
|
- |
|
976 |
TableContent tableContent = new TableContent();
|
- |
|
977 |
tableContent.setRows(rows);
|
- |
|
978 |
tSpec.setContent(tableContent);
|
- |
|
979 |
|
- |
|
980 |
}
|
- |
|
981 |
|
- |
|
982 |
@Override
|
- |
|
983 |
public void store(LightUIElement uiElement, SQLRowValues row) {
|
- |
|
984 |
// TODO Auto-generated method stub
|
- |
|
985 |
|
977 |
}
|
986 |
}
|
978 |
|
987 |
|
979 |
});
|
988 |
});
|
980 |
return map;
|
989 |
return map;
|
981 |
}
|
990 |
}
|