wtorek, 1 sierpnia 2017

  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. 
JLDraw
LDraw Instruction Visualizer

 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.