Mise à jour dev4 incluant des résolutions de bugs et des améliorations.
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.table.TableColumn;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
@@ -14,9 +15,9 @@ import java.util.Vector;
|
||||
*/
|
||||
public class ClassPropertiesWindow extends JDialog {
|
||||
|
||||
public static int UPDATE_ATTR = 0;
|
||||
public static int UPDATE_METH = 1;
|
||||
private static int UPDATE_ALL = 2;
|
||||
public static final int UPDATE_ATTR = 0;
|
||||
public static final int UPDATE_METH = 1;
|
||||
private static final int UPDATE_ALL = 2;
|
||||
|
||||
private UmlDiagram _umlDiagram;
|
||||
private Class _class;
|
||||
@@ -27,10 +28,9 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
private DefaultTableModel _attributeModel;
|
||||
private JTable _methodsTable;
|
||||
private JScrollPane _scrollMethods;
|
||||
private String[] _methodsColumns = {"Name", "Access modifier", "Type", "Arguments", "Static", "Final", "Abstract", "Synchronised", "Volatile", "Transient"};
|
||||
private String[] _methodsColumns = {"C", "Name", "Access modifier", "Type", "Arguments", "Static", "Final", "Abstract", "Synchronised", "Volatile", "Transient"};
|
||||
private DefaultTableModel _methodModel;
|
||||
|
||||
|
||||
/**
|
||||
* Constructeur - Crée une instance de la fenêtre de propriétés de classe à partir d'un diagramme et de la classe à modifier.
|
||||
* @param umlDiagram Le diagramme qui contient la classe.
|
||||
@@ -43,7 +43,7 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
//Paramétrage de la fenêtre
|
||||
this.setTitle("Edit properties - " + a.getName());
|
||||
this.setModal(true);
|
||||
this.setSize(new Dimension(800, 350));
|
||||
this.setSize(new Dimension(800, 375));
|
||||
Image img = null;
|
||||
try { img = ImageIO.read(AppThinker.class.getResource("img/logoAppThinker.png")); } catch (Exception ex) { }
|
||||
this.setIconImage(img);
|
||||
@@ -66,6 +66,24 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
namePan.add(_nameField);
|
||||
generalPanel.add(namePan);
|
||||
|
||||
//Radio bouton pour définir la classe principale
|
||||
JRadioButton mainRadio = new JRadioButton("This is the main class");
|
||||
mainRadio.setToolTipText("The main class is the entry point of the application. It appears in red on the diagram.");
|
||||
mainRadio.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
defineMainClass(a);
|
||||
refreshGraphics();
|
||||
}
|
||||
});
|
||||
ButtonGroup bg = new ButtonGroup();
|
||||
bg.add(mainRadio);
|
||||
if(_umlDiagram.getMainClass() == a) mainRadio.setSelected(true);
|
||||
else mainRadio.setSelected(false);
|
||||
|
||||
generalPanel.add(mainRadio);
|
||||
|
||||
|
||||
JLabel attrLbl = new JLabel("Edit attributes");
|
||||
generalPanel.add(attrLbl);
|
||||
|
||||
@@ -107,10 +125,9 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int selected = _attributesTable.getSelectedRow();
|
||||
if(_class.upAttribute(selected)){
|
||||
save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||
refreshGraphics();
|
||||
listAttributes();
|
||||
_attributesTable.setRowSelectionInterval(selected - 1, selected - 1);
|
||||
_umlDiagram.repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -122,10 +139,9 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int selected = _attributesTable.getSelectedRow();
|
||||
if(_class.downAttribute(selected)){
|
||||
save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||
refreshGraphics();
|
||||
listAttributes();
|
||||
_attributesTable.setRowSelectionInterval(selected + 1, selected + 1);
|
||||
_umlDiagram.repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -145,15 +161,11 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
_methodsTable = new JTable(_methodModel);
|
||||
|
||||
_methodsTable.addMouseListener(new MouseAdapter() {
|
||||
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
Point p = e.getPoint();
|
||||
int col = _methodsTable.columnAtPoint(p);
|
||||
int row = _methodsTable.rowAtPoint(p);
|
||||
System.out.println("clic");
|
||||
if (col == 3) {
|
||||
openArgumentsWindow(_class.getMethods().get(row));
|
||||
}
|
||||
if (col == 4) openArgumentsWindow(_class.getMethods().get(row));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -173,16 +185,6 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
});
|
||||
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() {
|
||||
@@ -199,10 +201,9 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int selected = _methodsTable.getSelectedRow();
|
||||
if(_class.upMethod(selected)){
|
||||
save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||
refreshGraphics();
|
||||
listMethods();
|
||||
_methodsTable.setRowSelectionInterval(selected - 1, selected - 1);
|
||||
_umlDiagram.repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -214,37 +215,79 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int selected = _methodsTable.getSelectedRow();
|
||||
if(_class.downMethod(selected)){
|
||||
save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||
refreshGraphics();
|
||||
listMethods();
|
||||
_methodsTable.setRowSelectionInterval(selected + 1, selected + 1);
|
||||
_umlDiagram.repaint();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
methodsTableModifier.add(downMethod);
|
||||
JButton overloadMethod = new JButton(" O ");
|
||||
overloadMethod.setToolTipText("Overload this method.");
|
||||
overloadMethod.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
overloadMethod();
|
||||
}
|
||||
});
|
||||
methodsTableModifier.add(overloadMethod);
|
||||
|
||||
methodsPan.add(methodsTableModifier);
|
||||
|
||||
generalPanel.add(methodsPan);
|
||||
|
||||
//Bouton de sauvegarde
|
||||
JButton saveBtn = new JButton("Save changes and quit");
|
||||
saveBtn.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
save(ClassPropertiesWindow.UPDATE_ALL, true);
|
||||
}
|
||||
});
|
||||
generalPanel.add(saveBtn);
|
||||
|
||||
this.add(generalPanel, BorderLayout.CENTER);
|
||||
|
||||
this.setVisible(true);
|
||||
|
||||
//Import des attributs et méthodes dans les tableaux
|
||||
this.listAttributes();
|
||||
this.listMethods();
|
||||
|
||||
this.addWindowListener(new WindowListener() {
|
||||
@Override
|
||||
public void windowOpened(WindowEvent e) {
|
||||
|
||||
}
|
||||
|
||||
//On enregistre à la fermeture de la fenêtre
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
saveClass();
|
||||
refreshGraphics();
|
||||
dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowIconified(WindowEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowDeiconified(WindowEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowActivated(WindowEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowDeactivated(WindowEvent e) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
public void defineMainClass(Class a){
|
||||
_umlDiagram.setMainClass(a);
|
||||
refreshGraphics();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -267,20 +310,74 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
* Ajoute un attribut à la classe et rafraîchit la liste des attributs.
|
||||
*/
|
||||
public void addAttribute(){
|
||||
this.save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||
this.saveAttributes();
|
||||
_class.addAttribute(new Attribute());
|
||||
this.listAttributes();
|
||||
refreshGraphics();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retire un attribut à la classe et rafraîchit la liste des attributs.
|
||||
*/
|
||||
public void removeAttribute(){
|
||||
this.save(ClassPropertiesWindow.UPDATE_ATTR, false);
|
||||
int i = _attributesTable.getSelectedRow();
|
||||
if(i != -1){
|
||||
this.saveAttributes();
|
||||
_class.removeAttribute(i);
|
||||
this.listAttributes();
|
||||
refreshGraphics();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute une méthode à la classe et rafraîchit la liste des méthodes.
|
||||
*/
|
||||
public void addMethod(){
|
||||
this.saveMethods();
|
||||
_class.addMethod(new Method());
|
||||
this.listMethods();
|
||||
refreshGraphics();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute une méthode à la classe et rafraîchit la liste des méthodes.
|
||||
* @param index Le rang d'insertion de la méthode.
|
||||
* @param m La méthode à insérer.
|
||||
*/
|
||||
public void addMethod(int index, Method m){
|
||||
this.saveMethods();
|
||||
_class.addMethod(index, m);
|
||||
this.listMethods();
|
||||
refreshGraphics();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retire une méthode à la classe et rafraîchit la liste des méthodes.
|
||||
*/
|
||||
public void removeMethod(){
|
||||
int i = _methodsTable.getSelectedRow();
|
||||
if(i != -1){
|
||||
this.saveMethods();
|
||||
_class.removeMethod(i);
|
||||
this.listMethods();
|
||||
refreshGraphics();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* On surcharge la méthode avec un argument en plus qui peut être modifié par la suite.
|
||||
*/
|
||||
public void overloadMethod(){
|
||||
int index = _methodsTable.getSelectedRow();
|
||||
if(index != -1){
|
||||
Method m = _class.getMethods().get(index);
|
||||
java.util.List<Argument> args = new ArrayList<Argument>();
|
||||
//On ajoute un argument de plus que la méthode à surcharger
|
||||
args.addAll(m.getArguments());
|
||||
args.add(new Argument());
|
||||
Method m1 = new Method(m.getAccess(), m.getType(), m.getName(), args, m.isConstructor(), m.isStatic(), m.isFinal(), m.isAbstract(), m.isSynchronized(), m.isVolatile(), m.isTransient());
|
||||
this.addMethod(index + 1, m1);
|
||||
this.openArgumentsWindow(m1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,224 +388,117 @@ public class ClassPropertiesWindow extends JDialog {
|
||||
//Import des attributs dans la table
|
||||
_attributeModel.setDataVector((Object[][]) null, _attributesColumns);
|
||||
for(Attribute attr : _class.getAttributes()){
|
||||
String access = attr.getAccess();
|
||||
switch(access){
|
||||
case "-":
|
||||
access = "PRIVATE";
|
||||
break;
|
||||
case "+":
|
||||
access = "PUBLIC";
|
||||
break;
|
||||
case "#":
|
||||
access = "PROTECTED";
|
||||
break;
|
||||
}
|
||||
String access = (attr.getAccess() == "+") ? "PUBLIC" : (attr.getAccess() == "#") ? "PROTECTED" : "PRIVATE";
|
||||
_attributeModel.addRow(new Object[]{attr.getName(), access, attr.getType(), attr.isStatic(), attr.isFinal(), attr.isAbstract(), attr.isSynchronized(), attr.isVolatile(), attr.isTransient()});
|
||||
}
|
||||
//On ajoute les contrôles pour chaque colonne
|
||||
JComboBox accessComboBox = new JComboBox();
|
||||
String[] access = { "PRIVATE", "PUBLIC", "PROTECTED" };
|
||||
JComboBox accessComboBox = new JComboBox(access);
|
||||
accessComboBox.setEditable(true);
|
||||
accessComboBox.addItem("PRIVATE");
|
||||
accessComboBox.addItem("PUBLIC");
|
||||
accessComboBox.addItem("PROTECTED");
|
||||
TableColumn accessColumn = _attributesTable.getColumn(_attributesColumns[1]);
|
||||
accessColumn.setCellEditor(new DefaultCellEditor(accessComboBox));
|
||||
|
||||
JComboBox typeComboBox = new JComboBox();
|
||||
_attributesTable.getColumn(_attributesColumns[1]).setCellEditor(new DefaultCellEditor(accessComboBox));
|
||||
String[] types = { "boolean", "char", "byte", "short", "int", "long", "float", "double", "String" };
|
||||
JComboBox typeComboBox = new JComboBox(types);
|
||||
typeComboBox.setEditable(true);
|
||||
typeComboBox.addItem("boolean");
|
||||
typeComboBox.addItem("char");
|
||||
typeComboBox.addItem("byte");
|
||||
typeComboBox.addItem("short");
|
||||
typeComboBox.addItem("int");
|
||||
typeComboBox.addItem("long");
|
||||
typeComboBox.addItem("float");
|
||||
typeComboBox.addItem("double");
|
||||
typeComboBox.addItem("String");
|
||||
TableColumn typeColumn = _attributesTable.getColumn(_attributesColumns[2]);
|
||||
typeColumn.setCellEditor(new DefaultCellEditor(typeComboBox));
|
||||
|
||||
JCheckBox staticComboBox = new JCheckBox();
|
||||
TableColumn staticColumn = _attributesTable.getColumn(_attributesColumns[3]);
|
||||
staticColumn.setCellEditor(new DefaultCellEditor(staticComboBox));
|
||||
JCheckBox finalComboBox = new JCheckBox();
|
||||
TableColumn finalColumn = _attributesTable.getColumn(_attributesColumns[4]);
|
||||
finalColumn.setCellEditor(new DefaultCellEditor(finalComboBox));
|
||||
JCheckBox abstractComboBox = new JCheckBox();
|
||||
TableColumn abstractColumn = _attributesTable.getColumn(_attributesColumns[5]);
|
||||
abstractColumn.setCellEditor(new DefaultCellEditor(abstractComboBox));
|
||||
JCheckBox synchronizedComboBox = new JCheckBox();
|
||||
TableColumn synchronizedColumn = _attributesTable.getColumn(_attributesColumns[6]);
|
||||
synchronizedColumn.setCellEditor(new DefaultCellEditor(synchronizedComboBox));
|
||||
JCheckBox volatileComboBox = new JCheckBox();
|
||||
TableColumn volatileColumn = _attributesTable.getColumn(_attributesColumns[7]);
|
||||
volatileColumn.setCellEditor(new DefaultCellEditor(volatileComboBox));
|
||||
JCheckBox transientComboBox = new JCheckBox();
|
||||
TableColumn transientColumn = _attributesTable.getColumn(_attributesColumns[8]);
|
||||
transientColumn.setCellEditor(new DefaultCellEditor(transientComboBox));
|
||||
_attributesTable.getColumn(_attributesColumns[2]).setCellEditor(new DefaultCellEditor(typeComboBox));
|
||||
_attributesTable.getColumn(_attributesColumns[3]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_attributesTable.getColumn(_attributesColumns[4]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_attributesTable.getColumn(_attributesColumns[5]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_attributesTable.getColumn(_attributesColumns[6]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_attributesTable.getColumn(_attributesColumns[7]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_attributesTable.getColumn(_attributesColumns[8]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute une méthode à la classe et rafraîchit la liste des méthodes.
|
||||
*/
|
||||
public void addMethod(){
|
||||
this.save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||
_class.addMethod(new Method());
|
||||
this.listMethods();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retire une méthode à la classe et rafraîchit la liste des méthodes.
|
||||
*/
|
||||
public void removeMethod(){
|
||||
this.save(ClassPropertiesWindow.UPDATE_METH, false);
|
||||
int i = _methodsTable.getSelectedRow();
|
||||
if(i != -1){
|
||||
_class.removeMethod(i);
|
||||
this.listMethods();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche la liste des méthodes de la classe dans le tableau
|
||||
* Affiche la liste des méthodes de la classe dans le tableau.
|
||||
*/
|
||||
public void listMethods(){
|
||||
//Import des attributs dans la table
|
||||
//Import des méthodes dans la table
|
||||
_methodModel.setDataVector((Object[][]) null, _methodsColumns);
|
||||
for(Method meth : _class.getMethods()){
|
||||
String access = meth.getAccess();
|
||||
switch(access){
|
||||
case "-":
|
||||
access = "PRIVATE";
|
||||
break;
|
||||
case "+":
|
||||
access = "PUBLIC";
|
||||
break;
|
||||
case "#":
|
||||
access = "PROTECTED";
|
||||
break;
|
||||
}
|
||||
_methodModel.addRow(new Object[]{meth.getName(), access, meth.getType(), "...", meth.isStatic(), meth.isFinal(), meth.isAbstract(), meth.isSynchronized(), meth.isVolatile(), meth.isTransient()});
|
||||
String access = (meth.getAccess() == "-") ? "PRIVATE" : (meth.getAccess() == "#") ? "PROTECTED" : "PUBLIC";
|
||||
_methodModel.addRow(new Object[]{meth.isConstructor(), meth.getName(), access, meth.getType(), "[EDIT]", meth.isStatic(), meth.isFinal(), meth.isAbstract(), meth.isSynchronized(), meth.isVolatile(), meth.isTransient()});
|
||||
}
|
||||
|
||||
//On ajoute les contrôles pour chaque colonne
|
||||
JComboBox accessComboBox = new JComboBox();
|
||||
String[] access = { "PRIVATE", "PUBLIC", "PROTECTED" };
|
||||
JComboBox accessComboBox = new JComboBox(access);
|
||||
accessComboBox.setEditable(true);
|
||||
accessComboBox.addItem("PRIVATE");
|
||||
accessComboBox.addItem("PUBLIC");
|
||||
accessComboBox.addItem("PROTECTED");
|
||||
TableColumn accessColumn = _methodsTable.getColumn(_methodsColumns[1]);
|
||||
accessColumn.setCellEditor(new DefaultCellEditor(accessComboBox));
|
||||
|
||||
JComboBox typeComboBox = new JComboBox();
|
||||
_methodsTable.getColumn(_methodsColumns[0]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[2]).setCellEditor(new DefaultCellEditor(accessComboBox));
|
||||
String[] types = { "boolean", "char", "byte", "short", "int", "long", "float", "double", "String" };
|
||||
JComboBox typeComboBox = new JComboBox(types);
|
||||
typeComboBox.setEditable(true);
|
||||
typeComboBox.addItem("boolean");
|
||||
typeComboBox.addItem("char");
|
||||
typeComboBox.addItem("byte");
|
||||
typeComboBox.addItem("short");
|
||||
typeComboBox.addItem("int");
|
||||
typeComboBox.addItem("long");
|
||||
typeComboBox.addItem("float");
|
||||
typeComboBox.addItem("double");
|
||||
typeComboBox.addItem("String");
|
||||
TableColumn typeColumn = _methodsTable.getColumn(_methodsColumns[2]);
|
||||
typeColumn.setCellEditor(new DefaultCellEditor(typeComboBox));
|
||||
|
||||
_methodsTable.getColumn(_methodsColumns[3]).setCellEditor(new DefaultCellEditor(typeComboBox));
|
||||
JTextField argsField = new JTextField();
|
||||
argsField.setEnabled(false);
|
||||
TableColumn argColumn = _methodsTable.getColumn(_methodsColumns[3]);
|
||||
argColumn.setCellEditor(new DefaultCellEditor(argsField));
|
||||
|
||||
JCheckBox staticComboBox = new JCheckBox();
|
||||
TableColumn staticColumn = _methodsTable.getColumn(_methodsColumns[4]);
|
||||
staticColumn.setCellEditor(new DefaultCellEditor(staticComboBox));
|
||||
JCheckBox finalComboBox = new JCheckBox();
|
||||
TableColumn finalColumn = _methodsTable.getColumn(_methodsColumns[5]);
|
||||
finalColumn.setCellEditor(new DefaultCellEditor(finalComboBox));
|
||||
JCheckBox abstractComboBox = new JCheckBox();
|
||||
TableColumn abstractColumn = _methodsTable.getColumn(_methodsColumns[6]);
|
||||
abstractColumn.setCellEditor(new DefaultCellEditor(abstractComboBox));
|
||||
JCheckBox synchronizedComboBox = new JCheckBox();
|
||||
TableColumn synchronizedColumn = _methodsTable.getColumn(_methodsColumns[7]);
|
||||
synchronizedColumn.setCellEditor(new DefaultCellEditor(synchronizedComboBox));
|
||||
JCheckBox volatileComboBox = new JCheckBox();
|
||||
TableColumn volatileColumn = _methodsTable.getColumn(_methodsColumns[8]);
|
||||
volatileColumn.setCellEditor(new DefaultCellEditor(volatileComboBox));
|
||||
JCheckBox transientComboBox = new JCheckBox();
|
||||
TableColumn transientColumn = _methodsTable.getColumn(_methodsColumns[9]);
|
||||
transientColumn.setCellEditor(new DefaultCellEditor(transientComboBox));
|
||||
_methodsTable.getColumn(_methodsColumns[4]).setCellEditor(new DefaultCellEditor(argsField));
|
||||
_methodsTable.getColumn(_methodsColumns[5]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[6]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[7]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[8]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[9]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
_methodsTable.getColumn(_methodsColumns[10]).setCellEditor(new DefaultCellEditor(new JCheckBox()));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
* Sauvegarde les attributs pour la classe en cours.
|
||||
*/
|
||||
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
|
||||
_attributesTable.editCellAt(0,0);
|
||||
//Changement du nom de la classe
|
||||
_class.setName(_nameField.getText());
|
||||
//Enregistrement des attributs
|
||||
for(int i = 0; i <= _attributeModel.getRowCount()-1; i++){
|
||||
Vector vect = (Vector)_attributeModel.getDataVector().elementAt(i);
|
||||
String access = vect.get(1).toString();
|
||||
switch(access){
|
||||
case "PRIVATE" :
|
||||
_class.getAttributes().get(i).setAccess(Attribute.PRIVATE);
|
||||
break;
|
||||
case "PUBLIC" :
|
||||
_class.getAttributes().get(i).setAccess(Attribute.PUBLIC);
|
||||
break;
|
||||
case "PROTECTED" :
|
||||
_class.getAttributes().get(i).setAccess(Attribute.PROTECTED);
|
||||
break;
|
||||
}
|
||||
_class.getAttributes().get(i).setName(vect.get(0).toString());
|
||||
_class.getAttributes().get(i).setType(vect.get(2).toString());
|
||||
_class.getAttributes().get(i).setStatic((boolean) vect.get(3));
|
||||
_class.getAttributes().get(i).setFinal((boolean) vect.get(4));
|
||||
_class.getAttributes().get(i).setAbstract((boolean) vect.get(5));
|
||||
_class.getAttributes().get(i).setSynchronized((boolean) vect.get(6));
|
||||
_class.getAttributes().get(i).setVolatile((boolean) vect.get(7));
|
||||
_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
|
||||
_methodsTable.editCellAt(0,0);
|
||||
for(int i = 0; i <= _methodModel.getRowCount()-1; i++){
|
||||
Vector vect = (Vector)_methodModel.getDataVector().elementAt(i);
|
||||
String access = vect.get(1).toString();
|
||||
switch(access){
|
||||
case "PRIVATE" :
|
||||
_class.getMethods().get(i).setAccess(Method.PRIVATE);
|
||||
break;
|
||||
case "PUBLIC" :
|
||||
_class.getMethods().get(i).setAccess(Method.PUBLIC);
|
||||
break;
|
||||
case "PROTECTED" :
|
||||
_class.getMethods().get(i).setAccess(Method.PROTECTED);
|
||||
break;
|
||||
}
|
||||
_class.getMethods().get(i).setName(vect.get(0).toString());
|
||||
_class.getMethods().get(i).setType(vect.get(2).toString());
|
||||
_class.getMethods().get(i).setStatic((boolean) vect.get(4));
|
||||
_class.getMethods().get(i).setFinal((boolean) vect.get(5));
|
||||
_class.getMethods().get(i).setAbstract((boolean) vect.get(6));
|
||||
_class.getMethods().get(i).setSynchronized((boolean) vect.get(7));
|
||||
_class.getMethods().get(i).setVolatile((boolean) vect.get(8));
|
||||
_class.getMethods().get(i).setTransient((boolean) vect.get(9));
|
||||
}
|
||||
public void saveAttributes(){
|
||||
//Enregistrement des attributs
|
||||
_attributesTable.editCellAt(0,0);
|
||||
for(int i = 0; i <= _attributeModel.getRowCount()-1; i++){
|
||||
Vector vect = (Vector)_attributeModel.getDataVector().elementAt(i);
|
||||
String access = vect.get(1).toString();
|
||||
_class.getAttributes().get(i).setName(vect.get(0).toString());
|
||||
_class.getAttributes().get(i).setAccess((access == "PUBLIC") ? Attribute.PUBLIC : (access == "PROTECTED") ? Attribute.PROTECTED : Attribute.PRIVATE);
|
||||
_class.getAttributes().get(i).setType(vect.get(2).toString());
|
||||
_class.getAttributes().get(i).setStatic((boolean) vect.get(3));
|
||||
_class.getAttributes().get(i).setFinal((boolean) vect.get(4));
|
||||
_class.getAttributes().get(i).setAbstract((boolean) vect.get(5));
|
||||
_class.getAttributes().get(i).setSynchronized((boolean) vect.get(6));
|
||||
_class.getAttributes().get(i).setVolatile((boolean) vect.get(7));
|
||||
_class.getAttributes().get(i).setTransient((boolean) vect.get(8));
|
||||
}
|
||||
}
|
||||
|
||||
//Rafraichissement de l'affichage
|
||||
/**
|
||||
* Sauvegarde les méthodes pour la classe en cours.
|
||||
*/
|
||||
public void saveMethods(){
|
||||
//Enregistrement des méthodes
|
||||
_methodsTable.editCellAt(0,0);
|
||||
for(int i = 0; i <= _methodModel.getRowCount()-1; i++){
|
||||
Vector vect = (Vector)_methodModel.getDataVector().elementAt(i);
|
||||
String access = vect.get(2).toString();
|
||||
_class.getMethods().get(i).setConstructor((boolean)vect.get(0));
|
||||
_class.getMethods().get(i).setName(vect.get(1).toString());
|
||||
_class.getMethods().get(i).setAccess((access == "PRIVATE") ? Method.PRIVATE : (access == "PROTECTED") ? Method.PROTECTED : Method.PUBLIC);
|
||||
_class.getMethods().get(i).setType(vect.get(3).toString());
|
||||
_class.getMethods().get(i).setStatic((boolean) vect.get(5));
|
||||
_class.getMethods().get(i).setFinal((boolean) vect.get(6));
|
||||
_class.getMethods().get(i).setAbstract((boolean) vect.get(7));
|
||||
_class.getMethods().get(i).setSynchronized((boolean) vect.get(8));
|
||||
_class.getMethods().get(i).setVolatile((boolean) vect.get(9));
|
||||
_class.getMethods().get(i).setTransient((boolean) vect.get(10));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sauvegarde l'ensemble de la classe.
|
||||
*/
|
||||
public void saveClass(){
|
||||
//Changement du nom de la classe
|
||||
_class.setName(_nameField.getText());
|
||||
//Sauvegarde des attributs et méthodes
|
||||
saveAttributes();
|
||||
saveMethods();
|
||||
}
|
||||
|
||||
/**
|
||||
* Rafraîchit la classe graphiquement.
|
||||
*/
|
||||
public void refreshGraphics(){
|
||||
this._class.computeMinSize();
|
||||
_umlDiagram.repaint();
|
||||
if(quit) this.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user