InterfaceEditor.java
package algorithmen.umleditor;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
/**
* Editor für eine Klasse.
*/
public class InterfaceEditor extends Editor {
protected JTextField nameField;
protected Vector methodsClone;
public InterfaceEditor(Interface c, Frame p) {
super(c, 460, 300, p);
}
public InterfaceEditor(Interface c, Dialog p) {
super(c, 460, 300, p);
}
protected void buildMainPanel(JPanel mp) {
mp.setLayout(new BoxLayout(mp, BoxLayout.Y_AXIS));
Interface c = (Interface) model;
JPanel topPanel = new JPanel(new GridLayout(1, 2));
// add name field
JPanel namePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
namePanel.add(new JLabel("Name:"));
nameField = new JTextField(c.getName(), 15);
namePanel.add(nameField);
// Listeditorpanel für die Methodenliste hinzufügen
methodsClone = (Vector) c.getMethods().clone(); // leider flacher Klon!
for (int i = 0; i < methodsClone.size(); i++) {
methodsClone.set(i, ((Method) methodsClone.get(i)).clone());
}
// alles zusammenbauen
topPanel.add(namePanel);
mp.add(topPanel);
mp.add(new ListEditorPanel(methodsClone, "Methoden", new MethodView(), this));
}
protected void update() {
Interface c = (Interface) model;
c.setName(nameField.getText());
c.setMethods(methodsClone);
}
}