Ciąg dalszy mojej nauki programowania w Javie. Zaowocował powstaniem nowego narzędzia, o którym można poczytać
tutaj, a zwie się ono
LDraw Instruction Visualizer . Albowiem, iż najlepiej poznać można człowieka po owocach trudu jego
. Zapraszam do pobrania oraz własnoręcznego przetestowania w/w narzędzia
.
Tutaj natomiast rozwodzić się będę nad aspektami produkcji oprogramowania tegoż. Tak więc należy zacząć od tego iż program ten używa JOGL oraz GlueGen jako narzędzi do generowania elementów 3D w przestrzeni 2D.
Z perspektywy
JOGL,
GlueGen jest używany do
łączenia OpenGL z Javą oraz jako nisko-poziomowy interfejs programowania aplikacji systemu okienkowego jak Microsoft Windows i Mac OS X. Obszernym źródłem wiedzy na ten temat może być artykuł OpenGL Evolution & JOGL
Jednakże całą obsługę procesu generowania elementów, dostałem z dobrodziejstwem przeglądarki JLDraw. Programu stworzonego oraz aktualnie nie rozwijanego przez Mario Pascucci. Poniżej rzut ekranu głównego okna omawianych programów.
Korzystanie z czyjeś porzuconej inwencji, to celowy zabieg pozwalający skupić się mnie na innych aspektach kodowania.
Lista Zmian
Na przykład stworzenia prostego mechanizmu cofania poczynionych operacji, który używa do przechowywania danych dwóch tablic:
private final ArrayList<UndoCommand> reundoList = new ArrayList<UndoCommand>();
private final ArrayList<UndoCommand> undoList = new ArrayList<UndoCommand>();
Działanie mechanizmu jest dosyć proste, i wygląd w kodzie tak:
public boolean restore(LDRenderedModel model) {
if (!canUndo())
return false;
UndoCommand command = undoList.get(0);
reundoList.add(0, command);
undoList.remove(0);
return command.restore(model);
}
Klasa LDRenderedModel jako parametr metody HistoryManager.restore(LDRenderedModel) zawiera wszelkie konieczne odniesienia do obiektów których stan ma być zmieniony /przywrócony/.
Budowanie interfejsu
Tworzenie aplikacji okienkowych w Javie nie było by tak przyjemne, gdyby nie WindowBuilder i Eclipse. Z darmowych rozwiązań jest to udany moim zdaniem duet. Dzięki temu stworzyłem interfejs widoczny na drugim obrazku. Pierwszy pokazuje interfejs JLDraw przed liftingiem.
Oczywiście planuje dalszą rozbudowę interfejsu, i co za tym idzie rozwój funkcji w/w programu. Tak więc, kończąc wątek ten, zapraszam do śledzenia zmian.