1 package fr.ifremer.tutti.ui.swing.content.cruise.actions;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
26 import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder;
27 import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders;
28 import fr.ifremer.tutti.service.PersistenceService;
29 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
30 import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUI;
31 import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIHandler;
32 import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIModel;
33 import fr.ifremer.tutti.ui.swing.content.cruise.GearCaracteristicsEditorUI;
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36
37
38
39
40
41 public class EditGearCaracteristicsAction extends LongActionSupport<EditCruiseUIModel, EditCruiseUI, EditCruiseUIHandler> {
42
43
44 private static final Log log =
45 LogFactory.getLog(EditGearCaracteristicsAction.class);
46
47 protected final PersistenceService persistenceService;
48
49 public EditGearCaracteristicsAction(EditCruiseUIHandler handler) {
50 super(handler, false);
51 persistenceService = getContext().getPersistenceService();
52 }
53
54 @Override
55 public void doAction() throws Exception {
56 GearCaracteristicsEditorUI editor = getUI().getGearCaracteristicsEditor();
57 editor.getModel().setEditable(true);
58
59 GearWithOriginalRankOrder gear =
60 EditCruiseUIHandler.GEAR_EDIT_CONTEXT.getContextValue(getUI());
61
62 CaracteristicMap caracteristics =
63 persistenceService.getGearCaracteristics(
64 getDataContext().getCruise().getIdAsInt(),
65 gear.getIdAsInt(),
66 gear.getOriginalRankOrder());
67
68 GearWithOriginalRankOrder gearToView =
69 GearWithOriginalRankOrders.newGearWithOriginalRankOrder(gear);
70 gearToView.setCaracteristics(caracteristics);
71
72 if (log.isInfoEnabled()) {
73 log.info("Will edit gear " + decorate(gearToView) +
74 " with " + gearToView.getCaracteristics().size() + " caracteristics.");
75 }
76 editor.getModel().setGear(gearToView);
77
78 getUI().getMainPanelLayout().setSelected(EditCruiseUIHandler.GEAR_CARACTERISTICS_CARD);
79 }
80 }