OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

Rev 17 | Rev 80 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 17 Rev 25
Line 17... Line 17...
17
import org.openconcerto.sql.model.SQLField;
17
import org.openconcerto.sql.model.SQLField;
18
import org.openconcerto.sql.model.SQLRow;
18
import org.openconcerto.sql.model.SQLRow;
19
import org.openconcerto.sql.model.SQLRowAccessor;
19
import org.openconcerto.sql.model.SQLRowAccessor;
20
import org.openconcerto.sql.model.SQLRowValues;
20
import org.openconcerto.sql.model.SQLRowValues;
21
import org.openconcerto.sql.model.SQLTable;
21
import org.openconcerto.sql.model.SQLTable;
22
import org.openconcerto.sql.model.SQLTableListener;
22
import org.openconcerto.sql.model.SQLTableEvent;
-
 
23
import org.openconcerto.sql.model.SQLTableEvent.Mode;
-
 
24
import org.openconcerto.sql.model.SQLTableModifiedListener;
23
import org.openconcerto.ui.SwingThreadUtils;
25
import org.openconcerto.ui.SwingThreadUtils;
24
 
26
 
25
import java.awt.Component;
27
import java.awt.Component;
26
import java.beans.PropertyChangeListener;
28
import java.beans.PropertyChangeListener;
27
import java.beans.PropertyChangeSupport;
29
import java.beans.PropertyChangeSupport;
Line 47... Line 49...
47
 */
49
 */
48
public class SQLRowView extends BaseSQLRequest {
50
public class SQLRowView extends BaseSQLRequest {
49
 
51
 
50
    // la table cible de cette requete
52
    // la table cible de cette requete
51
    private final SQLTable table;
53
    private final SQLTable table;
52
    private final SQLTableListener tableListener;
54
    private final SQLTableModifiedListener tableListener;
53
    // l'id affiché ou SQLRow.NONEXISTANT_ID si les valeurs affichées ne sont pas liées à une ligne
55
    // l'id affiché ou SQLRow.NONEXISTANT_ID si les valeurs affichées ne sont pas liées à une ligne
54
    // dans la base
56
    // dans la base
55
    private int selectedID;
57
    private int selectedID;
56
    // les valeurs affichées
58
    // les valeurs affichées
57
    private final Map<String, SQLRowItemView> views;
59
    private final Map<String, SQLRowItemView> views;
Line 72... Line 74...
72
        this.table = t;
74
        this.table = t;
73
        this.views = new HashMap<String, SQLRowItemView>();
75
        this.views = new HashMap<String, SQLRowItemView>();
74
        this.filling = false;
76
        this.filling = false;
75
        this.updating = false;
77
        this.updating = false;
76
        this.selectedID = SQLRow.NONEXISTANT_ID;
78
        this.selectedID = SQLRow.NONEXISTANT_ID;
77
        this.tableListener = new SQLTableListener() {
79
        this.tableListener = new SQLTableModifiedListener() {
-
 
80
            @Override
-
 
81
            public void tableModified(SQLTableEvent evt) {
-
 
82
                if (evt.getMode() == Mode.ROW_UPDATED)
-
 
83
                    this.rowModified(evt.getTable(), evt.getId());
-
 
84
                else if (evt.getMode() == Mode.ROW_DELETED)
-
 
85
                    this.rowDeleted(evt.getTable(), evt.getId());
-
 
86
                // else don't care
-
 
87
            }
78
 
88
 
79
            public void rowModified(SQLTable t, int id) {
89
            public void rowModified(SQLTable t, int id) {
80
                if (!isUpdating() && existsInDB()) {
90
                if (!isUpdating() && existsInDB()) {
81
                    if (!t.equals(getTable())) {
91
                    if (!t.equals(getTable())) {
82
                        // TODO trouver si ca nous concerne => select
92
                        // TODO trouver si ca nous concerne => select
Line 86... Line 96...
86
                        select(id);
96
                        select(id);
87
                    }
97
                    }
88
                }
98
                }
89
            }
99
            }
90
 
100
 
91
            public void rowAdded(SQLTable t, int id) {
-
 
92
                // don't care
-
 
93
            }
-
 
94
 
-
 
95
            public void rowDeleted(SQLTable t, int id) {
101
            public void rowDeleted(SQLTable t, int id) {
96
                if (!isUpdating() && existsInDB()) {
102
                if (!isUpdating() && existsInDB()) {
97
                    if (!t.equals(getTable())) {
103
                    if (!t.equals(getTable())) {
98
                        // TODO trouver si ca nous concerne
104
                        // TODO trouver si ca nous concerne
99
                        Thread.dumpStack();
105
                        Thread.dumpStack();
Line 113... Line 119...
113
        return this.updating;
119
        return this.updating;
114
    }
120
    }
115
 
121
 
116
    public final void activate(boolean b) {
122
    public final void activate(boolean b) {
117
        if (b) {
123
        if (b) {
118
            this.table.addTableListener(this.tableListener);
124
            this.table.addTableModifiedListener(this.tableListener);
119
            if (this.existsInDB())
125
            if (this.existsInDB())
120
                // to catch up to the changes which happened while we weren't listening
126
                // to catch up to the changes which happened while we weren't listening
121
                this.select(this.getSelectedID());
127
                this.select(this.getSelectedID());
122
        } else
128
        } else
123
            this.table.removeTableListener(this.tableListener);
129
            this.table.removeTableModifiedListener(this.tableListener);
124
    }
130
    }
125
 
131
 
126
    /**
132
    /**
127
     * Add a view.
133
     * Add a view.
128
     * 
134
     *