Задача
Разработать редактор для объекта данных.
Требования
Используя Eclipse Forms API, необходимо разработать форму
для редактирования объекта класса MoneyTransaction
Элементы управления
Выбор элемента управления для редактирования того или иного поля
класса предоставляется Вам.
Аналитики
Тут могут потребоваться пояснения. В качестве элемента интерфейса, ответственного за управление
аналитиками, мы видим таблицу с двумя колонками (Code, Value).
Такой элемент интерфейса должен предоставлять пользователю возможность добавить аналитику,
удалить аналитику и изменить значение аналитики (Value).
Вы можете предложить и иной, более, на Ваш взгляд, правильный вариант решения задачи управления аналитиками.
Дополнительные требования
Выполнение требований, перечисленных ниже, не обязательно, но желательно.
- Данные могут храниться в файловой системе в сериализованном виде с расширением .mtx .
- Редактор должен уметь инициироваться
init(IEditorSite site, IEditorInput input) и сохранять doSave(IProgressMonitor monitor) измененные данные.
|
Ресурсы
MoneyTransaction.java
package com.cargosoft.example.model;
import java.io.Serializable;
import java.util.Currency;
import java.util.HashMap;
import java.util.Map;
/**
* Денежная операция
*/
public class MoneyTransaction {
/**
* Дата учета операции
*/
private java.sql.Date postDate;
/**
* Сумма операции
*/
private Double value;
/**
* Сумма операции в учетной валюте
*/
private Double valueInHome;
/**
* Получатель
*/
private Participant participant;
/**
* Анатилические измерения. Например:
* ACCOUNT: 32462;
* OWNER: Ivanova;
*/
private Map<Dimension, String> dimensionMap;
/**
* Валюты операции
*/
private Currency currency;
/**
* Курс валюты операции к валюте учета
*/
private double rate;
/**
* Описание операции
*/
private String description;
... getters and setters
}
Participant.java
package com.cargosoft.example.model;
/**
* Получатель платежа
*/
public enum Participant {
PETROV, IVANOV, SIDOROV
}
Dimension.java
package com.cargosoft.example.model;
/**
* Код аналитики
*/
public enum Dimension {
ACCOUNT, INVOICE, AGENT, OWNER
}
|