Résolution #25 Organisation éléments UML
This commit is contained in:
@@ -13,7 +13,7 @@ import java.util.Vector;
|
|||||||
* Classe permettant la création de fenêtres pour la modification des arguments d'une méthode d'une classe.
|
* Classe permettant la création de fenêtres pour la modification des arguments d'une méthode d'une classe.
|
||||||
* @author V.BOULANGER
|
* @author V.BOULANGER
|
||||||
*/
|
*/
|
||||||
public class ArgumentsPropertiesWindow extends JFrame {
|
public class ArgumentsPropertiesWindow extends JDialog {
|
||||||
|
|
||||||
private UmlDiagram _umlDiagram;
|
private UmlDiagram _umlDiagram;
|
||||||
private Method _method;
|
private Method _method;
|
||||||
@@ -30,11 +30,12 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
//Paramétrage de la fenêtre
|
//Paramétrage de la fenêtre
|
||||||
this.setTitle("Edit arguments - " + m.getName());
|
this.setTitle("Edit arguments - " + m.getName());
|
||||||
this.setSize(new Dimension(800, 300));
|
this.setModal(true);
|
||||||
|
this.setSize(new Dimension(800, 350));
|
||||||
Image img = null;
|
Image img = null;
|
||||||
try { img = ImageIO.read(AppThinker.class.getResource("img/logoAppThinker.png")); } catch (Exception ex) { }
|
try { img = ImageIO.read(AppThinker.class.getResource("img/logoAppThinker.png")); } catch (Exception ex) { }
|
||||||
this.setIconImage(img);
|
this.setIconImage(img);
|
||||||
this.setResizable(true);
|
this.setResizable(false);
|
||||||
this.setLocationRelativeTo(null);
|
this.setLocationRelativeTo(null);
|
||||||
this.setLayout(new BorderLayout());
|
this.setLayout(new BorderLayout());
|
||||||
|
|
||||||
@@ -60,22 +61,54 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
JPanel argumentsTableModifier = new JPanel();
|
JPanel argumentsTableModifier = new JPanel();
|
||||||
argumentsTableModifier.setLayout(new BoxLayout(argumentsTableModifier, BoxLayout.Y_AXIS));
|
argumentsTableModifier.setLayout(new BoxLayout(argumentsTableModifier, BoxLayout.Y_AXIS));
|
||||||
JButton addArgument = new JButton("+");
|
JButton addArgument = new JButton(" + ");
|
||||||
|
addArgument.setToolTipText("Add a new argument.");
|
||||||
addArgument.addActionListener(new ActionListener() {
|
addArgument.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
addArgument();
|
addArgument();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
JButton removeArgument = new JButton("-");
|
argumentsTableModifier.add(addArgument);
|
||||||
|
JButton removeArgument = new JButton(" - ");
|
||||||
|
removeArgument.setToolTipText("Remove the selected argument.");
|
||||||
removeArgument.addActionListener(new ActionListener() {
|
removeArgument.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
removeArgument();
|
removeArgument();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
argumentsTableModifier.add(addArgument);
|
|
||||||
argumentsTableModifier.add(removeArgument);
|
argumentsTableModifier.add(removeArgument);
|
||||||
|
JButton upArgument = new JButton("▲");
|
||||||
|
upArgument.setToolTipText("Go up the selected attribute.");
|
||||||
|
upArgument.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _argumentsTable.getSelectedRow();
|
||||||
|
if(_method.upArgument(selected)){
|
||||||
|
save(false);
|
||||||
|
listArguments();
|
||||||
|
_argumentsTable.setRowSelectionInterval(selected - 1, selected - 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
argumentsTableModifier.add(upArgument);
|
||||||
|
JButton downArgument = new JButton("▼");
|
||||||
|
downArgument.setToolTipText("Go down the selected argument.");
|
||||||
|
downArgument.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _argumentsTable.getSelectedRow();
|
||||||
|
if(_method.downArgument(selected)){
|
||||||
|
save(false);
|
||||||
|
listArguments();
|
||||||
|
_argumentsTable.setRowSelectionInterval(selected + 1, selected + 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
argumentsTableModifier.add(downArgument);
|
||||||
|
|
||||||
argumentsPan.add(argumentsTableModifier);
|
argumentsPan.add(argumentsTableModifier);
|
||||||
|
|
||||||
@@ -86,7 +119,7 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
saveBtn.addActionListener(new ActionListener() {
|
saveBtn.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
saveAndClose();
|
save(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
generalPanel.add(saveBtn);
|
generalPanel.add(saveBtn);
|
||||||
@@ -103,6 +136,7 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
* Ajoute un argument à la méthode sélectionnée et rafraîchit la liste des arguments.
|
* Ajoute un argument à la méthode sélectionnée et rafraîchit la liste des arguments.
|
||||||
*/
|
*/
|
||||||
public void addArgument(){
|
public void addArgument(){
|
||||||
|
save(false);
|
||||||
_method.addArgument(new Argument());
|
_method.addArgument(new Argument());
|
||||||
_classProp.getEditingClass().computeMinSize();
|
_classProp.getEditingClass().computeMinSize();
|
||||||
_umlDiagram.repaint();
|
_umlDiagram.repaint();
|
||||||
@@ -115,6 +149,7 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
public void removeArgument(){
|
public void removeArgument(){
|
||||||
int i = _argumentsTable.getSelectedRow();
|
int i = _argumentsTable.getSelectedRow();
|
||||||
if(i != -1){
|
if(i != -1){
|
||||||
|
save(false);
|
||||||
_method.removeArgument(i);
|
_method.removeArgument(i);
|
||||||
_classProp.getEditingClass().computeMinSize();
|
_classProp.getEditingClass().computeMinSize();
|
||||||
_umlDiagram.repaint();
|
_umlDiagram.repaint();
|
||||||
@@ -150,8 +185,9 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sauvegarde les modifications pour la méthode en cours et ferme la fenêtre.
|
* Sauvegarde les modifications pour la méthode en cours et ferme la fenêtre.
|
||||||
|
* @param quit Fermer la fenêtre après la sauvegarde.
|
||||||
*/
|
*/
|
||||||
public void saveAndClose(){
|
public void save(boolean quit){
|
||||||
//Termine l'édition en sélectionnant une autre cellule
|
//Termine l'édition en sélectionnant une autre cellule
|
||||||
_argumentsTable.editCellAt(0,0);
|
_argumentsTable.editCellAt(0,0);
|
||||||
//Enregistrement des attributs
|
//Enregistrement des attributs
|
||||||
@@ -164,6 +200,6 @@ public class ArgumentsPropertiesWindow extends JFrame {
|
|||||||
//Rafraichissement de l'affichage
|
//Rafraichissement de l'affichage
|
||||||
_classProp.getEditingClass().computeMinSize();
|
_classProp.getEditingClass().computeMinSize();
|
||||||
_umlDiagram.repaint();
|
_umlDiagram.repaint();
|
||||||
this.dispose();
|
if(quit) this.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import javax.swing.*;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -292,6 +293,35 @@ public class Class implements Serializable {
|
|||||||
this.computeMinSize();
|
this.computeMinSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire remonter l'attribut sélectionné dans la liste.
|
||||||
|
* @param index L'index de l'attribut concerné.
|
||||||
|
* @return true if succeed, false if failed
|
||||||
|
*/
|
||||||
|
public boolean upAttribute(int index){
|
||||||
|
int attrNumber = this._attributes.size();
|
||||||
|
//Si au moins 2 attributs et que l'attribut n'est pas en 1ère position, on le remonte
|
||||||
|
if(index != 0 && attrNumber > 1){
|
||||||
|
Collections.swap(_attributes, index, index - 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire descendre l'attribut sélectionné dans la liste.
|
||||||
|
* @param index L'index de l'attribut sélectionné.
|
||||||
|
*/
|
||||||
|
public boolean downAttribute(int index){
|
||||||
|
int attrNumber = this._attributes.size();
|
||||||
|
//Si au moins 2 attributs et que l'attribut n'est pas en dernière position, on le descend
|
||||||
|
if(index != attrNumber - 1 && attrNumber > 1){
|
||||||
|
Collections.swap(_attributes, index, index + 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupère toutes les méthodes de la classe.
|
* Récupère toutes les méthodes de la classe.
|
||||||
* @return Les méthodes de la classe.
|
* @return Les méthodes de la classe.
|
||||||
@@ -335,6 +365,36 @@ public class Class implements Serializable {
|
|||||||
this.computeMinSize();
|
this.computeMinSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire remonter la méthode sélectionnée dans la liste.
|
||||||
|
* @param index L'index de la méthode concernée.
|
||||||
|
* @return true if succeed, false if failed
|
||||||
|
*/
|
||||||
|
public boolean upMethod(int index){
|
||||||
|
int methNumber = this._methods.size();
|
||||||
|
//Si au moins 2 méthodes et que la méthode n'est pas en 1ère position, on la remonte
|
||||||
|
if(index != 0 && methNumber > 1){
|
||||||
|
Collections.swap(_methods, index, index - 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire descendre la méthode sélectionnée dans la liste.
|
||||||
|
* @param index L'index de la méthode concernée.
|
||||||
|
* @return true if succeed, false if failed
|
||||||
|
*/
|
||||||
|
public boolean downMethod(int index){
|
||||||
|
int methNumber = this._methods.size();
|
||||||
|
//Si au moins 2 méthodes et que la méthode n'est pas en dernière position, on la descend
|
||||||
|
if(index != methNumber - 1 && methNumber > 1){
|
||||||
|
Collections.swap(_methods, index, index + 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet de redimensionner la classe vers le haut.
|
* Permet de redimensionner la classe vers le haut.
|
||||||
* @param posY La position en ordonnée du curseur.
|
* @param posY La position en ordonnée du curseur.
|
||||||
|
|||||||
@@ -12,7 +12,11 @@ import java.util.Vector;
|
|||||||
* Classe permettant la création de fenêtres pour la modification des propriétés des classes.
|
* Classe permettant la création de fenêtres pour la modification des propriétés des classes.
|
||||||
* @author V.BOULANGER
|
* @author V.BOULANGER
|
||||||
*/
|
*/
|
||||||
public class ClassPropertiesWindow extends JFrame {
|
public class ClassPropertiesWindow extends JDialog {
|
||||||
|
|
||||||
|
public static int UPDATE_ATTR = 0;
|
||||||
|
public static int UPDATE_METH = 1;
|
||||||
|
private static int UPDATE_ALL = 2;
|
||||||
|
|
||||||
private UmlDiagram _umlDiagram;
|
private UmlDiagram _umlDiagram;
|
||||||
private Class _class;
|
private Class _class;
|
||||||
@@ -38,7 +42,8 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
//Paramétrage de la fenêtre
|
//Paramétrage de la fenêtre
|
||||||
this.setTitle("Edit properties - " + a.getName());
|
this.setTitle("Edit properties - " + a.getName());
|
||||||
this.setSize(new Dimension(800, 300));
|
this.setModal(true);
|
||||||
|
this.setSize(new Dimension(800, 350));
|
||||||
Image img = null;
|
Image img = null;
|
||||||
try { img = ImageIO.read(AppThinker.class.getResource("img/logoAppThinker.png")); } catch (Exception ex) { }
|
try { img = ImageIO.read(AppThinker.class.getResource("img/logoAppThinker.png")); } catch (Exception ex) { }
|
||||||
this.setIconImage(img);
|
this.setIconImage(img);
|
||||||
@@ -49,7 +54,6 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
//Espace général de la fenêtre
|
//Espace général de la fenêtre
|
||||||
JPanel generalPanel = new JPanel();
|
JPanel generalPanel = new JPanel();
|
||||||
generalPanel.setLayout(new BoxLayout(generalPanel, BoxLayout.Y_AXIS));
|
generalPanel.setLayout(new BoxLayout(generalPanel, BoxLayout.Y_AXIS));
|
||||||
generalPanel.setAlignmentX(LEFT_ALIGNMENT);
|
|
||||||
|
|
||||||
//Espace de modification du nom
|
//Espace de modification du nom
|
||||||
JPanel namePan = new JPanel();
|
JPanel namePan = new JPanel();
|
||||||
@@ -78,23 +82,54 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
JPanel attributesTableModifier = new JPanel();
|
JPanel attributesTableModifier = new JPanel();
|
||||||
attributesTableModifier.setLayout(new BoxLayout(attributesTableModifier, BoxLayout.Y_AXIS));
|
attributesTableModifier.setLayout(new BoxLayout(attributesTableModifier, BoxLayout.Y_AXIS));
|
||||||
JButton addAttribute = new JButton("+");
|
JButton addAttribute = new JButton(" + ");
|
||||||
|
addAttribute.setToolTipText("Add a new attribute.");
|
||||||
addAttribute.addActionListener(new ActionListener() {
|
addAttribute.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
addAttribute();
|
addAttribute();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
JButton removeAttribute = new JButton("-");
|
attributesTableModifier.add(addAttribute);
|
||||||
|
JButton removeAttribute = new JButton(" - ");
|
||||||
|
removeAttribute.setToolTipText("Remove the selected attribute.");
|
||||||
removeAttribute.addActionListener(new ActionListener() {
|
removeAttribute.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
removeAttribute();
|
removeAttribute();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
attributesTableModifier.add(addAttribute);
|
|
||||||
attributesTableModifier.add(removeAttribute);
|
attributesTableModifier.add(removeAttribute);
|
||||||
|
JButton upAttribute = new JButton("▲");
|
||||||
|
upAttribute.setToolTipText("Go up the selected attribute.");
|
||||||
|
upAttribute.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _attributesTable.getSelectedRow();
|
||||||
|
if(_class.upAttribute(selected)){
|
||||||
|
save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||||
|
listAttributes();
|
||||||
|
_attributesTable.setRowSelectionInterval(selected - 1, selected - 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
attributesTableModifier.add(upAttribute);
|
||||||
|
JButton downAttribute = new JButton("▼");
|
||||||
|
downAttribute.setToolTipText("Go down the selected attribute.");
|
||||||
|
downAttribute.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _attributesTable.getSelectedRow();
|
||||||
|
if(_class.downAttribute(selected)){
|
||||||
|
save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||||
|
listAttributes();
|
||||||
|
_attributesTable.setRowSelectionInterval(selected + 1, selected + 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
attributesTableModifier.add(downAttribute);
|
||||||
attributesPan.add(attributesTableModifier);
|
attributesPan.add(attributesTableModifier);
|
||||||
|
|
||||||
generalPanel.add(attributesPan);
|
generalPanel.add(attributesPan);
|
||||||
@@ -128,22 +163,66 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
JPanel methodsTableModifier = new JPanel();
|
JPanel methodsTableModifier = new JPanel();
|
||||||
methodsTableModifier.setLayout(new BoxLayout(methodsTableModifier, BoxLayout.Y_AXIS));
|
methodsTableModifier.setLayout(new BoxLayout(methodsTableModifier, BoxLayout.Y_AXIS));
|
||||||
JButton addMethod = new JButton("+");
|
JButton addMethod = new JButton(" + ");
|
||||||
|
addMethod.setToolTipText("Add a new method.");
|
||||||
addMethod.addActionListener(new ActionListener() {
|
addMethod.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
addMethod();
|
addMethod();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
JButton removeMethod = new JButton("-");
|
methodsTableModifier.add(addMethod);
|
||||||
|
|
||||||
|
JButton generateConstructor = new JButton("Generate constructor");
|
||||||
|
generateConstructor.setToolTipText("Generate constructor for this class.");
|
||||||
|
generateConstructor.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
System.out.println("Generate constructor");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
methodsTableModifier.add(generateConstructor);
|
||||||
|
|
||||||
|
JButton removeMethod = new JButton(" - ");
|
||||||
|
removeMethod.setToolTipText("Remove the selected method.");
|
||||||
removeMethod.addActionListener(new ActionListener() {
|
removeMethod.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
removeMethod();
|
removeMethod();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
methodsTableModifier.add(addMethod);
|
|
||||||
methodsTableModifier.add(removeMethod);
|
methodsTableModifier.add(removeMethod);
|
||||||
|
JButton upMethod = new JButton("▲");
|
||||||
|
upMethod.setToolTipText("Go up the selected method.");
|
||||||
|
upMethod.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _methodsTable.getSelectedRow();
|
||||||
|
if(_class.upMethod(selected)){
|
||||||
|
save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||||
|
listMethods();
|
||||||
|
_methodsTable.setRowSelectionInterval(selected - 1, selected - 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
methodsTableModifier.add(upMethod);
|
||||||
|
JButton downMethod = new JButton("▼");
|
||||||
|
downMethod.setToolTipText("Go down the selected method.");
|
||||||
|
downMethod.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
int selected = _methodsTable.getSelectedRow();
|
||||||
|
if(_class.downMethod(selected)){
|
||||||
|
save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||||
|
listMethods();
|
||||||
|
_methodsTable.setRowSelectionInterval(selected + 1, selected + 1);
|
||||||
|
_umlDiagram.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
methodsTableModifier.add(downMethod);
|
||||||
|
|
||||||
methodsPan.add(methodsTableModifier);
|
methodsPan.add(methodsTableModifier);
|
||||||
|
|
||||||
@@ -154,7 +233,7 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
saveBtn.addActionListener(new ActionListener() {
|
saveBtn.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
saveAndClose();
|
save(ClassPropertiesWindow.UPDATE_ALL, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
generalPanel.add(saveBtn);
|
generalPanel.add(saveBtn);
|
||||||
@@ -188,6 +267,7 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
* Ajoute un attribut à la classe et rafraîchit la liste des attributs.
|
* Ajoute un attribut à la classe et rafraîchit la liste des attributs.
|
||||||
*/
|
*/
|
||||||
public void addAttribute(){
|
public void addAttribute(){
|
||||||
|
this.save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||||
_class.addAttribute(new Attribute());
|
_class.addAttribute(new Attribute());
|
||||||
this.listAttributes();
|
this.listAttributes();
|
||||||
}
|
}
|
||||||
@@ -196,6 +276,7 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
* Retire un attribut à la classe et rafraîchit la liste des attributs.
|
* Retire un attribut à la classe et rafraîchit la liste des attributs.
|
||||||
*/
|
*/
|
||||||
public void removeAttribute(){
|
public void removeAttribute(){
|
||||||
|
this.save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||||
int i = _attributesTable.getSelectedRow();
|
int i = _attributesTable.getSelectedRow();
|
||||||
if(i != -1){
|
if(i != -1){
|
||||||
_class.removeAttribute(i);
|
_class.removeAttribute(i);
|
||||||
@@ -271,6 +352,7 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
* Ajoute une méthode à la classe et rafraîchit la liste des méthodes.
|
* Ajoute une méthode à la classe et rafraîchit la liste des méthodes.
|
||||||
*/
|
*/
|
||||||
public void addMethod(){
|
public void addMethod(){
|
||||||
|
this.save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||||
_class.addMethod(new Method());
|
_class.addMethod(new Method());
|
||||||
this.listMethods();
|
this.listMethods();
|
||||||
}
|
}
|
||||||
@@ -279,6 +361,7 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
* Retire une méthode à la classe et rafraîchit la liste des méthodes.
|
* Retire une méthode à la classe et rafraîchit la liste des méthodes.
|
||||||
*/
|
*/
|
||||||
public void removeMethod(){
|
public void removeMethod(){
|
||||||
|
this.save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||||
int i = _methodsTable.getSelectedRow();
|
int i = _methodsTable.getSelectedRow();
|
||||||
if(i != -1){
|
if(i != -1){
|
||||||
_class.removeMethod(i);
|
_class.removeMethod(i);
|
||||||
@@ -358,8 +441,12 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sauvegarde les modifications pour la classe en cours et ferme la fenêtre.
|
* Sauvegarde les modifications pour la classe en cours et ferme la fenêtre.
|
||||||
|
* @param focusUpdate Les éléments à sauvegarder.
|
||||||
|
* @param quit Fermer la fenêtre après la sauvegarde.
|
||||||
*/
|
*/
|
||||||
public void saveAndClose(){
|
public void save(int focusUpdate, boolean quit){
|
||||||
|
//Si la sauvegarde des attributs est demandée
|
||||||
|
if(focusUpdate == ClassPropertiesWindow.UPDATE_ATTR || focusUpdate == ClassPropertiesWindow.UPDATE_ALL){
|
||||||
//Termine l'édition en sélectionnant une autre cellule
|
//Termine l'édition en sélectionnant une autre cellule
|
||||||
_attributesTable.editCellAt(0,0);
|
_attributesTable.editCellAt(0,0);
|
||||||
//Changement du nom de la classe
|
//Changement du nom de la classe
|
||||||
@@ -388,6 +475,10 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
_class.getAttributes().get(i).setVolatile((boolean) vect.get(7));
|
_class.getAttributes().get(i).setVolatile((boolean) vect.get(7));
|
||||||
_class.getAttributes().get(i).setTransient((boolean) vect.get(8));
|
_class.getAttributes().get(i).setTransient((boolean) vect.get(8));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//Si la sauvegarde des méthodes est demandée
|
||||||
|
if(focusUpdate == ClassPropertiesWindow.UPDATE_METH || focusUpdate == ClassPropertiesWindow.UPDATE_ALL){
|
||||||
//Enregistrement des méthodes
|
//Enregistrement des méthodes
|
||||||
_methodsTable.editCellAt(0,0);
|
_methodsTable.editCellAt(0,0);
|
||||||
for(int i = 0; i <= _methodModel.getRowCount()-1; i++){
|
for(int i = 0; i <= _methodModel.getRowCount()-1; i++){
|
||||||
@@ -413,10 +504,11 @@ public class ClassPropertiesWindow extends JFrame {
|
|||||||
_class.getMethods().get(i).setVolatile((boolean) vect.get(8));
|
_class.getMethods().get(i).setVolatile((boolean) vect.get(8));
|
||||||
_class.getMethods().get(i).setTransient((boolean) vect.get(9));
|
_class.getMethods().get(i).setTransient((boolean) vect.get(9));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Rafraichissement de l'affichage
|
//Rafraichissement de l'affichage
|
||||||
this._class.computeMinSize();
|
this._class.computeMinSize();
|
||||||
_umlDiagram.repaint();
|
_umlDiagram.repaint();
|
||||||
this.dispose();
|
if(quit) this.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -148,6 +149,36 @@ public class Method implements Serializable {
|
|||||||
this._arguments.clear();
|
this._arguments.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire remonter l'argument sélectionné dans la liste.
|
||||||
|
* @param index L'index de l'argument concerné.
|
||||||
|
* @return true if succeed, false if failed
|
||||||
|
*/
|
||||||
|
public boolean upArgument(int index){
|
||||||
|
int argNumber = this._arguments.size();
|
||||||
|
//Si au moins 2 arguments et que l'argument n'est pas en 1ère position, on le remonte
|
||||||
|
if(index != 0 && argNumber > 1){
|
||||||
|
Collections.swap(_arguments, index, index - 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Faire descendre l'argument sélectionné dans la liste.
|
||||||
|
* @param index L'index de l'argument concerné.
|
||||||
|
* @return true if succeed, false if failed
|
||||||
|
*/
|
||||||
|
public boolean downArgument(int index){
|
||||||
|
int argNumber = this._arguments.size();
|
||||||
|
//Si au moins 2 arguments et que l'argument n'est pas en dernière position, on le descend
|
||||||
|
if(index != argNumber - 1 && argNumber > 1){
|
||||||
|
Collections.swap(_arguments, index, index + 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne si l'attribut est statique ou non.
|
* Retourne si l'attribut est statique ou non.
|
||||||
* @return true : l'attribut est statique, false: l'attribut n'est pas statique.
|
* @return true : l'attribut est statique, false: l'attribut n'est pas statique.
|
||||||
|
|||||||
Reference in New Issue
Block a user