root / tmp / org.txm.analec.rcp / src matt / visuAnalec / PanneauCommandesSchemas.java @ 481
Historique | Voir | Annoter | Télécharger (19,52 ko)
1 |
/*
|
---|---|
2 |
* To change this template, choose Tools | Templates
|
3 |
* and open the template in the editor.
|
4 |
*/
|
5 |
package visuAnalec; |
6 |
|
7 |
import java.awt.*; |
8 |
import java.awt.event.*; |
9 |
import java.util.*; |
10 |
import javax.swing.*; |
11 |
import visuAnalec.Message.*; |
12 |
import visuAnalec.PanneauEditeur.*; |
13 |
import visuAnalec.elements.*; |
14 |
import visuAnalec.texte.*; |
15 |
import visuAnalec.texte.PanneauAffTexte.*; |
16 |
import visuAnalec.texte.PanneauTexte.*; |
17 |
import visuAnalec.util.*; |
18 |
import visuAnalec.util.GMessages.*; |
19 |
import visuAnalec.util.GVisu.*; |
20 |
import visuAnalec.vue.*; |
21 |
|
22 |
/**
|
23 |
*
|
24 |
* @author Bernard Victorri
|
25 |
*/
|
26 |
public class PanneauCommandesSchemas extends PanneauCommandes implements ActionListener { |
27 |
private PanneauChamps panneauChamps;
|
28 |
private TypeComboBox saisieTypeSchemas;
|
29 |
private ElementComboBox saisieSchema;
|
30 |
private TypeComboBox saisieTypeElt;
|
31 |
private ElementComboBox saisieElt;
|
32 |
private JButton creeSchema; |
33 |
private JButton supprimeSchema; |
34 |
private JButton ajouteElement; |
35 |
private JButton oteElement; |
36 |
private JButton creeUniteElt; |
37 |
private int[] bornesSelectTexte; |
38 |
/*
|
39 |
|
40 |
* CREATION PAR LE PANNEAU EDITEUR
|
41 |
*/
|
42 |
PanneauCommandesSchemas(Vue vue, PanneauAffTexte pTexte, PanneauChamps pChamps) { |
43 |
super(vue, pTexte);
|
44 |
JToolBar barre1 = new JToolBar(); |
45 |
barre1.setPreferredSize(new Dimension(0, 22)); |
46 |
// barre1.setBackground(PanneauTexte.getCouleurFond1());
|
47 |
barre1.setAlignmentX(0.0f);
|
48 |
// barre1.setFloatable(false);
|
49 |
add(barre1); |
50 |
JToolBar barre2 = new JToolBar(); |
51 |
barre2.setPreferredSize(new Dimension(0, 22)); |
52 |
// barre2.setBackground(PanneauTexte.getCouleurFond2());
|
53 |
barre2.setAlignmentX(0.0f);
|
54 |
// barre2.setFloatable(false);
|
55 |
add(barre2); |
56 |
panneauChamps = pChamps; |
57 |
saisieTypeSchemas = new TypeComboBox(Schema.class); |
58 |
saisieTypeSchemas.addActionListener(this);
|
59 |
saisieSchema = new ElementComboBox();
|
60 |
saisieSchema.addActionListener(this);
|
61 |
saisieTypeElt = new TypeComboBox(Element.class); |
62 |
saisieTypeElt.addActionListener(this);
|
63 |
saisieElt = new ElementComboBox();
|
64 |
saisieElt.addActionListener(this);
|
65 |
creeSchema = new JButton(new GAction("Créer") { |
66 |
public void executer() { |
67 |
creerSchema(); |
68 |
} |
69 |
}); |
70 |
supprimeSchema = new JButton(new GAction("Supprimer") { |
71 |
public void executer() { |
72 |
supprimerSchema(); |
73 |
} |
74 |
}); |
75 |
ajouteElement = new JButton(new GAction("Ajouter") { |
76 |
public void executer() { |
77 |
ajouterElement(); |
78 |
} |
79 |
}); |
80 |
oteElement = new JButton(new GAction("Oter") { |
81 |
public void executer() { |
82 |
oterElement(); |
83 |
} |
84 |
}); |
85 |
creeUniteElt = new JButton(new GAction("Créer") { |
86 |
public void executer() { |
87 |
creerUniteElt(); |
88 |
} |
89 |
}); |
90 |
barre1.addSeparator(); |
91 |
barre1.add(new TitreBarre("Schéma : ", PanneauTexte.getCouleurFond1())); |
92 |
barre1.addSeparator(); |
93 |
barre1.add(saisieTypeSchemas); |
94 |
barre1.add(saisieSchema); |
95 |
barre1.addSeparator(); |
96 |
barre1.add(creeSchema); |
97 |
barre1.addSeparator(); |
98 |
barre1.add(supprimeSchema); |
99 |
barre2.addSeparator(); |
100 |
barre2.add(new TitreBarre("Elément : ", PanneauTexte.getCouleurFond2())); |
101 |
barre2.addSeparator(); |
102 |
barre2.add(saisieTypeElt); |
103 |
barre2.add(saisieElt); |
104 |
barre2.addSeparator(); |
105 |
barre2.add(ajouteElement); |
106 |
barre2.add(oteElement); |
107 |
barre2.add(creeUniteElt); |
108 |
} |
109 |
|
110 |
/*
|
111 |
* COMMANDES UTILISEES PAR LE PANNEAU EDITEUR
|
112 |
*/
|
113 |
public void reinitialiser() { |
114 |
// typiquement, appelé par le panneau éditeur à la suite d'une modif de vue ou de structure
|
115 |
saisieTypeSchemas.removeActionListener(this);
|
116 |
saisieTypeSchemas.setModele(vue.getTypesSchemasAVoir()); |
117 |
saisieTypeSchemas.effSelection(); |
118 |
saisieTypeSchemas.addActionListener(this);
|
119 |
saisieTypeElt.removeActionListener(this);
|
120 |
saisieTypeElt.setModele(vue.getTypes(Unite.class), vue.getTypes(Relation.class), vue.getTypes(Schema.class)); |
121 |
saisieTypeElt.effSelection(); |
122 |
saisieTypeElt.addActionListener(this);
|
123 |
initSaisieSchema(); |
124 |
initSaisieElt(); |
125 |
etatSelectRien(); |
126 |
revalidate(); |
127 |
repaint(); |
128 |
} |
129 |
public void reafficher() { |
130 |
// potentiellement appelé par le panneau éditeur ?
|
131 |
// appelé aussi par traiterElementEvent
|
132 |
if (saisieSchema.pasdeSelection()) {
|
133 |
initSaisieSchema(); |
134 |
if (saisieElt.pasdeSelection()) {
|
135 |
initSaisieElt(); |
136 |
etatSelectRien(); |
137 |
} else {
|
138 |
Element eltCourant = saisieElt.getSelection();
|
139 |
initSaisieElt(eltCourant); |
140 |
etatSelectElt(eltCourant); |
141 |
} |
142 |
} else {
|
143 |
Schema schCourant = (Schema) saisieSchema.getSelection(); |
144 |
initSaisieSchema(schCourant); |
145 |
if (saisieElt.pasdeSelection()) {
|
146 |
initSaisieElt(); |
147 |
etatSelectSchema(schCourant); |
148 |
} else {
|
149 |
Element eltCourant = saisieElt.getSelection();
|
150 |
initSaisieElt(eltCourant); |
151 |
etatSelectSchemaElt(schCourant, eltCourant); |
152 |
} |
153 |
} |
154 |
} |
155 |
public void elementSuivant(int sens) { |
156 |
if (sens>0) saisieSchema.gotoSuivant(); |
157 |
else saisieSchema.gotoPrecedent();
|
158 |
} |
159 |
public Element elementSelectionne() { |
160 |
if (saisieSchema.pasdeSelection()) return null; |
161 |
return saisieSchema.getSelection();
|
162 |
} |
163 |
public void editerElement(Element elt) { |
164 |
// appelé par le panneauEditeur : elt est forcément un schéma
|
165 |
if (elt.getClass() != Schema.class) throw new UnsupportedOperationException("Erreur : classe incorrecte"); |
166 |
editerSchema((Schema) elt);
|
167 |
} |
168 |
public void traiterElementEvent(ElementEvent evt) { |
169 |
switch (evt.getModif()) {
|
170 |
case AJOUT_SCHEMA:
|
171 |
case MODIF_SCHEMA:
|
172 |
Schema sch = (Schema) evt.getElement(); |
173 |
editerSchema(sch); |
174 |
return;
|
175 |
case SUP_SCHEMA:
|
176 |
if (evt.getElement() == saisieSchema.getSelection()) {
|
177 |
initSaisieSchema(); |
178 |
initSaisieElt(); |
179 |
etatSelectRien(); |
180 |
} else {
|
181 |
reafficher(); |
182 |
} |
183 |
return;
|
184 |
case AJOUT_UNITE:
|
185 |
if (saisieTypeElt.getClasseSelection() == Unite.class ||
|
186 |
evt.getElement().getType().equals(saisieTypeElt.getTypeSelection())) { |
187 |
initSaisieElt(evt.getElement()); |
188 |
} |
189 |
reafficher(); |
190 |
return;
|
191 |
case SUP_UNITE:
|
192 |
case SUP_RELATION:
|
193 |
case BORNES_UNITE:
|
194 |
case AJOUT_RELATION:
|
195 |
case MODIF_VALEUR:
|
196 |
reafficher(); |
197 |
return;
|
198 |
default:
|
199 |
throw new UnsupportedOperationException("Cas " + evt.getModif() + " oublié dans un switch"); |
200 |
} |
201 |
} |
202 |
public void editerSchema(Schema sch) { |
203 |
// appelé par traiterElementEvent,
|
204 |
// et aussi directement par le panneau éditeur quand il est sollicité par d'autres fenêtres
|
205 |
if (!sch.getType().equals(saisieTypeSchemas.getTypeSelection())) {
|
206 |
saisieTypeSchemas.removeActionListener(this);
|
207 |
saisieTypeSchemas.setSelection(sch.getType()); |
208 |
saisieTypeSchemas.addActionListener(this);
|
209 |
} |
210 |
initSaisieSchema(sch); |
211 |
saisieSchema.setSelection(sch); |
212 |
} |
213 |
public void editerSchemaElement(Schema sch, Element elt) { |
214 |
// appelé par le panneau éditeur sollicité par VisuChaines
|
215 |
if (!sch.getType().equals(saisieTypeSchemas.getTypeSelection())) {
|
216 |
saisieTypeSchemas.removeActionListener(this);
|
217 |
saisieTypeSchemas.setSelection(sch.getType()); |
218 |
saisieTypeSchemas.addActionListener(this);
|
219 |
} |
220 |
initSaisieSchema(sch); |
221 |
forceElt(elt); |
222 |
} |
223 |
public void editerElementTypeSchema(Element elt, String typesch) { |
224 |
// appelé par le panneau éditeur sollicité par VisuChaines
|
225 |
if (!typesch.equals(saisieTypeSchemas.getTypeSelection())) {
|
226 |
saisieTypeSchemas.removeActionListener(this);
|
227 |
saisieTypeSchemas.setSelection(typesch); |
228 |
saisieTypeSchemas.addActionListener(this);
|
229 |
} |
230 |
initSaisieSchema(); |
231 |
forceElt(elt); |
232 |
} |
233 |
public ArrayList<ElementMarque> trouverElementsVises(Unite uniteVisee, TypeMarquage marqueUniteVisee, |
234 |
boolean avecId) {
|
235 |
ArrayList<ElementMarque> eltsMarques = new ArrayList<ElementMarque>(); |
236 |
ArrayList<Element> eltsVises; |
237 |
Element eltVise;
|
238 |
switch (marqueUniteVisee) {
|
239 |
case FOND1:
|
240 |
eltsVises = Element.trouverElementsParUniteSousjacente(saisieSchema.getElements(), uniteVisee);
|
241 |
for (Element elt : eltsVises) eltsMarques.add(new ElementMarque( |
242 |
elt, marqueUniteVisee, avecId ? saisieSchema.getIdElement(elt) : null));
|
243 |
return eltsMarques;
|
244 |
case FOND1_2:
|
245 |
case FOND2:
|
246 |
eltsVises = Element.trouverElementsParUniteSousjacente(saisieElt.getElements(), uniteVisee);
|
247 |
for (Element elt : eltsVises) eltsMarques.add(new ElementMarque( |
248 |
elt, marqueUniteVisee, avecId ? saisieElt.getIdElement(elt) : null));
|
249 |
return eltsMarques;
|
250 |
case SELECT1:
|
251 |
eltVise = saisieSchema.getSelection(); |
252 |
eltsMarques.add(new ElementMarque(
|
253 |
eltVise, marqueUniteVisee, avecId ? saisieSchema.getIdElement(eltVise) : null));
|
254 |
return eltsMarques;
|
255 |
case SELECT1_2:
|
256 |
case SELECT2:
|
257 |
eltVise = saisieElt.getSelection(); |
258 |
eltsMarques.add(new ElementMarque(
|
259 |
eltVise, marqueUniteVisee, avecId ? saisieElt.getIdElement(eltVise) : null));
|
260 |
return eltsMarques;
|
261 |
default:
|
262 |
throw new UnsupportedOperationException("Marquage non prévu : " + marqueUniteVisee); |
263 |
|
264 |
} |
265 |
} |
266 |
/*
|
267 |
* ACTIONS DE L'UTILISATEUR : CHANGEMENTS D'ETAT
|
268 |
*/
|
269 |
public void actionPerformed(ActionEvent evt) { |
270 |
try {
|
271 |
if (evt.getSource() == saisieTypeSchemas) {
|
272 |
initSaisieSchema(); |
273 |
if (saisieElt.pasdeSelection()) etatSelectRien();
|
274 |
else etatSelectElt(saisieElt.getSelection());
|
275 |
return;
|
276 |
} |
277 |
if (evt.getSource() == saisieTypeElt) {
|
278 |
initSaisieElt(); |
279 |
if (saisieSchema.pasdeSelection()) etatSelectRien();
|
280 |
else etatSelectSchema((Schema) saisieSchema.getSelection()); |
281 |
return;
|
282 |
} |
283 |
if (evt.getSource() == saisieSchema) {
|
284 |
if (saisieSchema.pasdeSelection()) {
|
285 |
if (saisieElt.pasdeSelection()) etatSelectRien();
|
286 |
else etatSelectElt(saisieElt.getSelection());
|
287 |
} else {
|
288 |
if (saisieElt.pasdeSelection()) etatSelectSchema((Schema) saisieSchema.getSelection()); |
289 |
else etatSelectSchemaElt((Schema) saisieSchema.getSelection(), saisieElt.getSelection()); |
290 |
} |
291 |
return;
|
292 |
} |
293 |
if (evt.getSource() == saisieElt) {
|
294 |
if (saisieElt.pasdeSelection()) {
|
295 |
if (saisieSchema.pasdeSelection()) etatSelectRien();
|
296 |
else etatSelectSchema((Schema) saisieSchema.getSelection()); |
297 |
} else {
|
298 |
if (saisieSchema.pasdeSelection()) etatSelectElt(saisieElt.getSelection());
|
299 |
else etatSelectSchemaElt((Schema) saisieSchema.getSelection(), saisieElt.getSelection()); |
300 |
} |
301 |
return;
|
302 |
} |
303 |
throw new UnsupportedOperationException("Evénement non prévu : " + evt.paramString()); |
304 |
} catch (Throwable ex) { |
305 |
GMessages.erreurFatale(ex); |
306 |
} |
307 |
} |
308 |
@Override
|
309 |
public void traiterSourisEvent(SourisEvent evt) { |
310 |
switch (evt.getTypeEvent()) {
|
311 |
case SELECT_RIEN:
|
312 |
saisieElt.removeActionListener(this);
|
313 |
saisieElt.effSelection(); |
314 |
saisieElt.addActionListener(this);
|
315 |
saisieSchema.effSelection(); |
316 |
return;
|
317 |
case SELECT_ELEMENT:
|
318 |
switch (evt.getMarquageElementVise()) {
|
319 |
case SELECT1:
|
320 |
forceElt(evt.getElementVise()); |
321 |
return;
|
322 |
case SELECT2:
|
323 |
case SELECT1_2:
|
324 |
saisieSchema.effSelection(); |
325 |
return;
|
326 |
case FOND1:
|
327 |
saisieSchema.setSelection(evt.getElementVise()); |
328 |
return;
|
329 |
case FOND2:
|
330 |
case FOND1_2:
|
331 |
saisieElt.setSelection(evt.getElementVise()); |
332 |
return;
|
333 |
default:
|
334 |
throw new UnsupportedOperationException("Marquage non prévu : " + evt.getTypeEvent()); |
335 |
} |
336 |
case SELECT_TEXTE:
|
337 |
saisieElt.removeActionListener(this);
|
338 |
saisieElt.effSelection(); |
339 |
saisieElt.addActionListener(this);
|
340 |
saisieSchema.removeActionListener(this);
|
341 |
saisieSchema.effSelection(); |
342 |
saisieSchema.addActionListener(this);
|
343 |
bornesSelectTexte = evt.getBornesSelectionTexte(); |
344 |
etatSelectTexte(); |
345 |
return;
|
346 |
} |
347 |
throw new UnsupportedOperationException("Evénement non prévu : " + evt.getTypeEvent()); |
348 |
} |
349 |
|
350 |
/*
|
351 |
* ACTIONS DE L'UTILISATEUR : BOUTONS
|
352 |
*/
|
353 |
private void creerSchema() { |
354 |
vue.getCorpus().addSchemaSaisi(saisieTypeSchemas.getTypeSelection(), saisieElt.getSelection()); |
355 |
} |
356 |
private void creerUniteElt() { |
357 |
if (vue.getCorpus().checkPresenceUnite(saisieTypeElt.getTypeSelection(), bornesSelectTexte[0], bornesSelectTexte[1]) && |
358 |
!GMessages.confirmationAction("Dupliquer cette unité ?")) return; |
359 |
vue.getCorpus().addUniteSaisie(saisieTypeElt.getTypeSelection(), bornesSelectTexte[0], bornesSelectTexte[1]); |
360 |
} |
361 |
private void supprimerSchema() { |
362 |
if (!GMessages.confirmationAction("Supprimer le schéma sélectionné ?")) return; |
363 |
vue.getCorpus().supSchema((Schema) saisieSchema.getSelection());
|
364 |
} |
365 |
private void ajouterElement() { |
366 |
vue.getCorpus().ajouterElementSchemaSaisi(saisieElt.getSelection(), (Schema) saisieSchema.getSelection());
|
367 |
} |
368 |
private void oterElement() { |
369 |
vue.getCorpus().oterElementSchema(saisieElt.getSelection(), (Schema) saisieSchema.getSelection());
|
370 |
} |
371 |
|
372 |
/*
|
373 |
* GESTION INTERNE
|
374 |
*/
|
375 |
private void etatSelectRien() { // ni Sch ni Elt n'ont été saisis |
376 |
if (saisieTypeElt.pasdeSelection()) {
|
377 |
if (saisieTypeSchemas.pasdeSelection()) panneauTexte.pasDeMarquage();
|
378 |
else panneauTexte.saisir(null, |
379 |
Element.getUnitesSousjacentes(saisieSchema.getElements()), TypeMarquage.FOND1);
|
380 |
} else {
|
381 |
if (saisieTypeSchemas.pasdeSelection()) panneauTexte.saisir(null, |
382 |
Element.getUnitesSousjacentes(saisieElt.getElements()), TypeMarquage.FOND2);
|
383 |
else panneauTexte.saisir(null, |
384 |
Element.getUnitesSousjacentes(saisieSchema.getElements()), TypeMarquage.FOND1,
|
385 |
Element.getUnitesSousjacentes(saisieElt.getElements()), TypeMarquage.FOND2);
|
386 |
} |
387 |
panneauChamps.effacer(); |
388 |
creeSchema.setEnabled(false);
|
389 |
supprimeSchema.setEnabled(false);
|
390 |
ajouteElement.setEnabled(false);
|
391 |
oteElement.setEnabled(false);
|
392 |
creeUniteElt.setEnabled(false);
|
393 |
} |
394 |
private void etatSelectTexte() { // du texte a été sélectionné |
395 |
if (saisieTypeElt.pasdeSelection()) {
|
396 |
if (saisieTypeSchemas.pasdeSelection()) panneauTexte.pasDeMarquage();
|
397 |
else panneauTexte.saisir(null, |
398 |
Element.getUnitesSousjacentes(saisieSchema.getElements()), TypeMarquage.FOND1);
|
399 |
} else {
|
400 |
if (saisieTypeSchemas.pasdeSelection()) panneauTexte.saisir(null, |
401 |
Element.getUnitesSousjacentes(saisieElt.getElements()), TypeMarquage.FOND2);
|
402 |
else panneauTexte.saisir(null, |
403 |
Element.getUnitesSousjacentes(saisieSchema.getElements()), TypeMarquage.FOND1,
|
404 |
Element.getUnitesSousjacentes(saisieElt.getElements()), TypeMarquage.FOND2);
|
405 |
} |
406 |
panneauChamps.effacer(); |
407 |
creeSchema.setEnabled(false);
|
408 |
supprimeSchema.setEnabled(false);
|
409 |
ajouteElement.setEnabled(false);
|
410 |
oteElement.setEnabled(false);
|
411 |
if (!saisieTypeElt.pasdeSelection() && saisieTypeElt.getClasseSelection() == Unite.class)
|
412 |
creeUniteElt.setEnabled(true);
|
413 |
} |
414 |
private void etatSelectElt(Element elt) { // seul Elt a été choisi |
415 |
if (saisieTypeSchemas.pasdeSelection()) panneauTexte.saisir(elt.getUnite0(),
|
416 |
elt.getUnitesSousjacentes(), TypeMarquage.SELECT2); |
417 |
else panneauTexte.saisir(elt.getUnite0(), elt.getUnitesSousjacentes(), TypeMarquage.SELECT2,
|
418 |
Element.getUnitesSousjacentes(saisieSchema.getElements()), TypeMarquage.FOND1);
|
419 |
panneauChamps.afficher(elt); |
420 |
if (!saisieTypeSchemas.pasdeSelection()) {
|
421 |
creeSchema.setEnabled(true);
|
422 |
Boutons.setDefaut(creeSchema, true);
|
423 |
} |
424 |
supprimeSchema.setEnabled(false);
|
425 |
ajouteElement.setEnabled(false);
|
426 |
oteElement.setEnabled(false);
|
427 |
creeUniteElt.setEnabled(false);
|
428 |
} |
429 |
private void etatSelectSchema(Schema sch) { // seul Sch a été choisi |
430 |
if (saisieTypeElt.pasdeSelection()) panneauTexte.saisir(sch.getUnite0(),
|
431 |
sch.getUnitesSousjacentes(), TypeMarquage.SELECT1); |
432 |
else panneauTexte.saisir(sch.getUnite0(),
|
433 |
sch.getUnitesSousjacentes(), TypeMarquage.SELECT1, |
434 |
Element.getUnitesSousjacentes(filtreSch(saisieElt.getElements(), (Schema[])saisieSchema.getElements())), |
435 |
TypeMarquage.FOND1_2, |
436 |
Element.getUnitesSousjacentes(saisieElt.getElements()), TypeMarquage.FOND2);
|
437 |
panneauChamps.afficher(sch); |
438 |
creeSchema.setEnabled(false);
|
439 |
supprimeSchema.setEnabled(true);
|
440 |
ajouteElement.setEnabled(false);
|
441 |
oteElement.setEnabled(false);
|
442 |
creeUniteElt.setEnabled(false);
|
443 |
} |
444 |
private void etatSelectSchemaElt(Schema sch, Element elt) { |
445 |
if (sch.contient(elt)) etatSelectSchemaEltInterne(sch, elt);
|
446 |
else etatSelectSchemaEltExterne(sch, elt);
|
447 |
} |
448 |
private void etatSelectSchemaEltInterne(Schema sch, Element elt) { |
449 |
panneauTexte.saisir(elt.getUnite0(), |
450 |
elt.getUnitesSousjacentes(), TypeMarquage.SELECT1_2, |
451 |
sch.getUnitesSousjacentes(), TypeMarquage.SELECT1); |
452 |
panneauChamps.afficher(elt); |
453 |
creeSchema.setEnabled(false);
|
454 |
ajouteElement.setEnabled(false);
|
455 |
if (sch.getContenu().size() > 1) { |
456 |
oteElement.setEnabled(true);
|
457 |
supprimeSchema.setEnabled(false);
|
458 |
} else {
|
459 |
oteElement.setEnabled(false);
|
460 |
supprimeSchema.setEnabled(true);
|
461 |
} |
462 |
creeUniteElt.setEnabled(false);
|
463 |
} |
464 |
private void etatSelectSchemaEltExterne(Schema sch, Element elt) { |
465 |
panneauTexte.saisir(elt.getUnite0(), |
466 |
sch.getUnitesSousjacentes(), TypeMarquage.SELECT1, |
467 |
elt.getUnitesSousjacentes(), TypeMarquage.SELECT2); |
468 |
panneauChamps.afficher(sch); |
469 |
creeSchema.setEnabled(false);
|
470 |
supprimeSchema.setEnabled(false);
|
471 |
ajouteElement.setEnabled(true);
|
472 |
oteElement.setEnabled(false);
|
473 |
creeUniteElt.setEnabled(false);
|
474 |
} |
475 |
private void forceElt(Element elt) { |
476 |
if (saisieTypeElt.getClasseSelection() != elt.getClass() || !elt.getType().equals(saisieTypeElt.getTypeSelection())) {
|
477 |
saisieTypeElt.removeActionListener(this);
|
478 |
saisieTypeElt.setSelection(elt.getClass(), elt.getType()); |
479 |
saisieTypeElt.addActionListener(this);
|
480 |
initSaisieElt(); |
481 |
} |
482 |
saisieElt.setSelection(elt); |
483 |
} |
484 |
private Element[] filtreSch(Element[] elts, Schema[] schs) { |
485 |
ArrayList<Element> elts1 = new ArrayList<Element>(); |
486 |
for (Element elt : elts) for(Schema sch: schs) if(sch.getContenu().contains(elt)) { |
487 |
elts1.add(elt); |
488 |
break;
|
489 |
} |
490 |
return elts1.toArray(new Element[0]); |
491 |
} |
492 |
private void initSaisieSchema(Schema sch) { |
493 |
saisieSchema.removeActionListener(this);
|
494 |
if (saisieTypeSchemas.pasdeSelection()) saisieSchema.setModeleVide();
|
495 |
else {
|
496 |
String type0 = saisieTypeSchemas.getTypeSelection();
|
497 |
Schema[] schemas = vue.getSchemasAVoir(type0); |
498 |
saisieSchema.setModele(schemas, vue.getIdSchemas(type0, schemas)); |
499 |
} |
500 |
if (sch == null) saisieSchema.effSelection(); |
501 |
else saisieSchema.setSelection(sch);
|
502 |
saisieSchema.addActionListener(this);
|
503 |
saisieSchema.revalidate(); |
504 |
} |
505 |
private void initSaisieSchema() { |
506 |
initSaisieSchema(null);
|
507 |
} |
508 |
private void initSaisieElt(Element elt) { |
509 |
saisieElt.removeActionListener(this);
|
510 |
if (saisieTypeElt.pasdeSelection()) saisieElt.setModeleVide();
|
511 |
else {
|
512 |
Class<? extends Element> classe = saisieTypeElt.getClasseSelection(); |
513 |
String type = saisieTypeElt.getTypeSelection();
|
514 |
saisieElt.setModele(vue.getElements(classe, type), vue.getIdElements(classe, type)); |
515 |
} |
516 |
if (elt == null) saisieElt.effSelection(); |
517 |
else saisieElt.setSelection(elt);
|
518 |
saisieElt.addActionListener(this);
|
519 |
saisieElt.revalidate(); |
520 |
} |
521 |
private void initSaisieElt() { |
522 |
initSaisieElt(null);
|
523 |
} |
524 |
} |