OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

Rev 94 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 94 Rev 156
Line 16... Line 16...
16
import org.openconcerto.sql.element.SQLElement;
16
import org.openconcerto.sql.element.SQLElement;
17
import org.openconcerto.ui.FrameUtil;
17
import org.openconcerto.ui.FrameUtil;
18
import org.openconcerto.utils.cc.IClosure;
18
import org.openconcerto.utils.cc.IClosure;
19
 
19
 
20
import java.awt.event.ActionEvent;
20
import java.awt.event.ActionEvent;
-
 
21
import java.util.Objects;
21
 
22
 
22
import javax.swing.AbstractAction;
23
import javax.swing.AbstractAction;
23
import javax.swing.Action;
24
import javax.swing.Action;
24
import javax.swing.JFrame;
25
import javax.swing.JFrame;
25
import javax.swing.JMenu;
26
import javax.swing.JMenu;
Line 147... Line 148...
147
        };
148
        };
148
        this.actionCreated(menuItemAction);
149
        this.actionCreated(menuItemAction);
149
        return menuItemAction;
150
        return menuItemAction;
150
    }
151
    }
151
 
152
 
152
    public static abstract class AbstractSQLMenuItemAction extends AbstractAction {
153
    public static abstract class AbstractSQLMenuItemAction<E extends SQLElement> extends AbstractAction {
153
 
154
 
154
        private final SQLElement elem;
155
        private final E elem;
155
        private JFrame frame;
156
        private JFrame frame;
156
        private boolean cacheFrame;
157
        private boolean cacheFrame;
157
 
158
 
158
        public AbstractSQLMenuItemAction(SQLElement elem, String name) {
159
        public AbstractSQLMenuItemAction(E elem, String name) {
159
            super(name);
160
            super(name);
160
            this.elem = elem;
161
            this.elem = Objects.requireNonNull(elem, "SQLElement");
161
            this.frame = null;
162
            this.frame = null;
162
            this.cacheFrame = true;
163
            this.cacheFrame = true;
163
            this.putValue(Action.ACTION_COMMAND_KEY, getClass().getName() + " with " + getElem().getCode());
164
            this.putValue(Action.ACTION_COMMAND_KEY, getClass().getName() + " with " + getElem().getCode());
164
        }
165
        }
165
 
166
 
Line 186... Line 187...
186
            }
187
            }
187
        }
188
        }
188
 
189
 
189
        protected abstract JFrame createFrame();
190
        protected abstract JFrame createFrame();
190
 
191
 
191
        public final SQLElement getElem() {
192
        public final E getElem() {
192
            return this.elem;
193
            return this.elem;
193
        }
194
        }
194
 
195
 
195
        @Override
196
        @Override
196
        public void actionPerformed(ActionEvent e) {
197
        public void actionPerformed(ActionEvent e) {
197
            FrameUtil.show(this.getFrame());
198
            FrameUtil.show(this.getFrame());
198
        }
199
        }
199
    }
200
    }
200
 
201
 
201
    static abstract class GenericSQLElementAction<F extends JFrame> extends AbstractSQLMenuItemAction {
202
    static abstract class GenericSQLElementAction<F extends JFrame> extends AbstractSQLMenuItemAction<SQLElement> {
202
 
203
 
203
        public GenericSQLElementAction(SQLElement elem, String name) {
204
        public GenericSQLElementAction(SQLElement elem, String name) {
204
            super(elem, name);
205
            super(elem, name);
205
        }
206
        }
206
 
207