При разработке APE-форм для Borland StarTeam часто возникает желание обрабатывать некоторые события на уровне всего объекта (например Task).
Так что небольшой кусок кода, который показывает как можно отслеживать следующие вещи:
- Изменение атрибута (свойства) объекта — addPropertyChangeListener
- Предобработка глобальных событий (сохранение например) объекта — addPreprocessListener
- Постобработка глобальных событий — addPostprocessListener
Самое сложное — хоть убей не помню, где же есть описание вот этого:
String str = ev.getOperation();
if (str.equals(«update«))
Ну а вот и сам кусок кода:
package com.starbase.starteam.task;
public class TaskForm extends JPanel {
public static JFrame f;
private static DefaultNavigatorPanel defNav;
ItemCatcher itemCatch = new ItemCatcher();public TaskForm() {
}void jbInit() throws Exception {
}public static void main(String[] args) {
}private void onLoadItem() {
}
class ItemCatcher extends JComponent implements ItemDisplayListener {
ItemCatcher() {
}public void refreshDisplay() {
// Do nothing
}public void setItem(ItemWrapper item) {
Container con = this.getParent().getParent();
defNav = (DefaultNavigatorPanel) con.getParent();
item.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent ev) {
onLoadItem();
}
});defNav.navigator.addPreprocessListener(new PreprocessListener() {
public void preprocess(PreprocessEvent ev) throws AbortException {
String str = ev.getOperation();
if (str.equals(«update»)) {
}
});defNav.navigator.addPostprocessListener(new PostprocessListener() {
public void postprocess(PostprocessEvent ev) {
String str = ev.getOperation();
if (str.equals(«update»)) {
}
}
});
}
}
Если что — спрашивайте. Постараюсь помочь
0 Responses to “Обработка событий в APE-формах Borland StarTeam”