1 package fr.ifremer.reefdb.ui.swing.content.manage.rule.pmfm;
2
3 /*
4 * #%L
5 * Reef DB :: UI
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2014 - 2015 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Affero General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU Affero General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 * #L%
24 */
25
26 import fr.ifremer.reefdb.dto.configuration.control.RulePmfmDTO;
27 import fr.ifremer.reefdb.ui.swing.content.manage.rule.RulesUIModel;
28 import fr.ifremer.reefdb.ui.swing.util.table.AbstractReefDbTableUIModel;
29
30 /**
31 * Model pour le tableau des controles sur les PSFM
32 */
33 public class ControlPmfmTableUIModel extends AbstractReefDbTableUIModel<RulePmfmDTO, ControlPmfmRowModel, ControlPmfmTableUIModel> {
34
35 private RulesUIModel parentModel;
36
37 private boolean editable;
38 /** Constant <code>PROPERTY_EDITABLE="editable"</code> */
39 public static final String PROPERTY_EDITABLE = "editable";
40
41 /**
42 * Constructor.
43 */
44 public ControlPmfmTableUIModel() {
45 super();
46 }
47
48 /**
49 * <p>Getter for the field <code>parentModel</code>.</p>
50 *
51 * @return a {@link fr.ifremer.reefdb.ui.swing.content.manage.rule.RulesUIModel} object.
52 */
53 public RulesUIModel getParentModel() {
54 return parentModel;
55 }
56
57 /**
58 * <p>Setter for the field <code>parentModel</code>.</p>
59 *
60 * @param parentModel a {@link fr.ifremer.reefdb.ui.swing.content.manage.rule.RulesUIModel} object.
61 */
62 public void setParentModel(RulesUIModel parentModel) {
63 this.parentModel = parentModel;
64 }
65
66 /**
67 * <p>isEditable.</p>
68 *
69 * @return a boolean.
70 */
71 public boolean isEditable() {
72 return editable && getParentModel().isEditable();
73 }
74
75 /**
76 * <p>Setter for the field <code>editable</code>.</p>
77 *
78 * @param editable a boolean.
79 */
80 public void setEditable(boolean editable) {
81 boolean oldValue = isEditable();
82 this.editable = editable;
83 firePropertyChange(PROPERTY_EDITABLE, oldValue, editable);
84 }
85 }