OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 153 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
74 ilm 1
package org.openconcerto.modules.extensionbuilder.table;
2
 
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.Comparator;
6
import java.util.List;
7
 
8
import javax.swing.JFrame;
9
import javax.swing.JOptionPane;
10
 
11
import org.openconcerto.erp.config.ComptaPropsConfiguration;
12
import org.openconcerto.erp.config.Log;
13
import org.openconcerto.modules.extensionbuilder.Extension;
14
import org.openconcerto.modules.extensionbuilder.component.ComponentDescritor;
15
import org.openconcerto.modules.extensionbuilder.menu.mainmenu.MenuDescriptor;
16
import org.openconcerto.sql.element.GroupSQLComponent;
17
import org.openconcerto.sql.element.SQLComponent;
18
import org.openconcerto.sql.element.SQLElement;
19
import org.openconcerto.sql.model.DBRoot;
20
import org.openconcerto.sql.model.SQLTable;
21
 
22
public class TableDescritor {
23
    private String name;
24
    private List<FieldDescriptor> fields = new ArrayList<FieldDescriptor>();
25
 
26
    public TableDescritor(String string) {
27
        this.name = string;
28
 
29
    }
30
 
31
    public void createElement(final Extension ext) {
32
        // Create elements
33
        ComptaPropsConfiguration conf = ComptaPropsConfiguration.getInstanceCompta();
34
        DBRoot root = conf.getRootSociete();
35
        if (conf.getDirectory().getElement(name) == null) {
36
            final SQLTable table = root.getTable(name);
37
            final SQLElement e = new SQLElement("ext." + name, "ext." + name, table) {
38
 
39
                @Override
40
                protected List<String> getListFields() {
41
                    return new ArrayList<String>(0);
42
                }
43
 
44
                @Override
45
                protected SQLComponent createComponent() {
46
 
47
                    for (final ComponentDescritor cDescriptor : ext.getCreateComponentList()) {
48
                        if (cDescriptor.getTable().equals(table.getTable().getName())) {
49
 
50
                            final GroupSQLComponent gComponent = new GroupSQLComponent(this, cDescriptor.getGroup());
51
                            return gComponent;
52
 
53
                        }
54
                    }
55
                    JOptionPane.showMessageDialog(new JFrame(), "Unable to create default creation component for table " + name);
56
                    return null;
57
                }
58
            };
59
            conf.getDirectory().addSQLElement(e);
60
            Log.get().info("Autocreate element for table: " + table.getName());
61
        }
62
    }
63
 
64
    public String getName() {
65
        return name;
66
    }
67
 
68
    public void setName(String name) {
69
        this.name = name;
70
    }
71
 
72
    public List<FieldDescriptor> getFields() {
73
        return fields;
74
    }
75
 
76
    public void add(FieldDescriptor f) {
77
        fields.add(f);
78
 
79
    }
80
 
81
    public void remove(FieldDescriptor field) {
82
        fields.remove(field);
83
 
84
    }
85
 
86
    @Override
87
    public String toString() {
88
        return name;
89
    }
90
 
91
    public void sortFields() {
92
        Collections.sort(this.fields, new Comparator<FieldDescriptor>() {
93
 
94
            @Override
95
            public int compare(FieldDescriptor o1, FieldDescriptor o2) {
96
                return o1.getName().compareToIgnoreCase(o2.getName());
97
            }
98
        });
99
 
100
    }
101
 
102
}