-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProductDialog.java
83 lines (74 loc) · 2.5 KB
/
ProductDialog.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.awt.Component;
import zzProduct.Product;
public interface ProductDialog {
public enum Result{
OK, //Produkt jest ok
USER_ABORTED, //Użyszkodnik się spękał ;-)
NON_FATAL_ERRORS, // Błędy bazy danych - np. żyskodnik nie ma praw do edycji
FATAL_ERRORS // Duży błąd - czyli niewyłapany wyjątek klasy innej niż ZZIllegalEx
}
/**
*
* @param c Właściciel JDialoga
* @return Wartość enuma.
*/
Result display (Component c);
/**
*
* @param c Właściciel JDialoga
* @param p Produkt edytowany
* @return Wartość enuma.
*/
Result display (Component c, Product p);
/**
* Zwraca produkt
* @return
*/
Product getProduct();
/**
* Problemy które na któe możesz się natknąć:
* Generalnie na samych podwalinach progamu jest duża wada koncepcyjna.
* Klasa produkt ma trzy klasy funkcji:
* getXXX - zwraca wartość pola
* setXXX - ustawia wartość pola
* changeXXX - zmienia wartośc pola
* jeśli pole jest nie-ustawione a wywołujesz na m\nim change -
* rzucany jest wyjątek. Jeśli pole jest ustwaione a wywołjesz na nim set
* To rzucany jest wyjątek.
* NIE ma funkcji booleanIsSetXXX niestety. - możesz dopisać. ale chyba nie warto
* Czyli musisz to uwzględnic w dialogu.
* Mozesz też pogrzebać w klasie Simple pordukt. Pisałem ją dawno i nei jestem z niej
* dumny. Tylko niech przejdzie wszystkie testy z zzTests z product w nazwie.
* Uważaj bp sotatnio się naciolem - nie wszystkie funkcje changeXXX działają.
* Tzn nie wszędzie jest linijka np. date = changedDate. Tzn. wydaje mi się że już
* wszystkie, ale wydaje mi się ;-).
*/
/**
* Uwaga ogólna:
* W kalsie zzUser.User powstała rodzina funckji boolean canUserPerformXXX
* i używaj ich (ew. dopisuj kolejne funckje) zamiats porównywac priorytety.
*/
/**
* Nie musisz implementować tego interfejsu - idea jest wazna.
* Rzucaj co tam chcesz.
* Możesz podejrzeć moja klasę co to robi, ale ona raczej nie ma możliwości edycji.
* Jak chcesz mozesz dopisać do mojej kalsy (ProductGeneratingDialog?), albo
* po niej dziedziczyć.
* Proponuje zrób to na takiej zasadzie:
* class Dialog{
* private Flavour flav;
* private interface Flavour{
* //masz wszystkie funkcje do ustawiania
* }
* class CreateFlavout{
* Kiedy twożysz od zera produkt
* }
* class ModifyFlavour{
* Kiedy modyfikujesz
* Pamiętaj że nie wszystkie pola muszą byc ustawione (choć raczej będą)
* }
*
*
*
*/
}