O technologii i biznesie naszym zdaniem
Archive for styczeń, 2010
It’s freezing outside…but development in progress – as usual.
stycznia 25th
Winter is in its peak nowadays! It’s so cold, that minus five degrees (Celsius) feels
like hot, minus fifteen is typical and when it’s minus twenty five – we can say “it’s
getting a bit colder”
A temperature exceeding minus thirty degrees is even happening
- what a weather, for God’s sake we’re not in a deep Russia, are we?!
Although our cars are seriously wounded by this critical conditions and getting to the
office on time is becoming a challenge – development process stays unimpressed and
evolves as was meant to. Simply astonishing way of dealing with complex IT projects -
despite the world is so unfriendly outside, in house it all works like a Swiss watch.
Public transport is struggling with major drawbacks, roads are black no more and are
becoming a one, huge ice rink, selected schools are going to be closed, flight are being
canceled one after another – but developers from Espeo are doing their job as usual.
What can I say – guys still make a huge impression on me, even when I’m no longer the
“new one”. As a sales person all I can do is to stay aside, admire their achievement and
make sure there will be always some challenging projects in a queue.
Vaadin framework
stycznia 15th
Vaadin to framework przeznaczony do budowy graficznego interfejsu użytkownika dla aplikacji internetowych tworzonych z wykorzystaniem języka Java. Całe rozwiązanie oparte jest o Google Web Toolkit (GWT). Paleta gotowych komponentów jest dość szeroka, można w niej znaleźć m.in. kontrolki do obsługi kalendarza, tabel, do budowy menu itp. jeśli jednak okazało by się to niewystarczające można utworzyć własny komponent.
Na stronie projektu dostępny jest plugin dla środowiska Eclipse. Opisany w dalszej części przykład został wykonany właśnie z wykorzystaniem tego pluginu.
Konfiguracja
Struktura projektu wykorzystującego framework Vaadin nie różni się praktycznie niczym od zwykłej aplikacji internetowej wykonywanej za pomocą Javy, nie ma żadnych zbędnych plików i katalogów, które niekiedy potrafi wprowadzić sporo zamieszania.
W pliku web.xml zdefiniowany został m.in. serwlet obsługujący żądania, jego parametr inicjujący zawiera identyfikator klasy, na podstawie której zostanie wygenerowany pierwszy widok (zaraz po uruchomieniu aplikacji). Sama klasa serwletu jest częścią frameworka Vaadin. Domyślnie włączony jest tryb debagowania.
<context-param>
<description>Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>Simplevaadinexample Application</servlet-name>
<servlet-class>
com.vaadin.terminal.gwt.server.ApplicationServlet
</servlet-class>
<init-param>
<description>Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>pl.espeo.example.MainWindow</param-value>
</init-param>
</servlet>
Przykładowa aplikacja
Każda aplikacja wykorzystująca framework Vaadin musi posiadać klasę, która dziedziczy po klasie Application i implementuje metodę init(). W tworzonej aplikacji tą rolę pełni klasa VaadinApp, dodatkowo został wykorzystany interfejs ClickListener do obsługi zdarzeń obiektu Button.
public class VaadinApp extends Application implements ClickListener {
private Window mainWindow;
private Window subWindow;
private Button closeButton;
private Label label;
@Override
public void init() {
mainWindow = new Window("Main window");
createSubWindow();
mainWindow.addWindow(subWindow);
setMainWindow(mainWindow);
}
//...
}
W metodzie init() stworzone zostało główne okno programu stanowiące kontener dla pozostałych elementów graficznego interfejsu użytkownika.
private void createSubWindow() {
VerticalLayout layout = new VerticalLayout();
layout.setSpacing(true);
layout.setMargin(true);
label = new Label("Window content");
closeButton = new Button("Close");
closeButton.addListener(this);
layout.addComponent(closeButton);
subWindow = new Window("Window");
subWindow.addComponent(layout);
subWindow.center();
subWindow.setClosable(false);
}
@Override
public void buttonClick(ClickEvent event) {
mainWindow.removeWindow(subWindow);
}
Metoda buttonClick pochodzi z interfejsu ClickListener, jej wywołanie powoduje usunięcie okna z okna głównego aplikacji.
Podsumowanie
Vaadin framework stanowi ciekawą alternatywę dla tworzenia tradycyjnego tworzenia widoków – za pomocą jsp, html css itd. W końcu cała aplikacja może być napisana w Javie.
Sposób implementacji poszczególnych elementów jest bardzo podobny do Swinga co moim zdaniem należy uznać za duży plus. Wydaje mi się, że Vaadin świetnie sprawdziłby się w mały i średnich projektach.
New year – new challenges
stycznia 5th
And it’s happened – the 2009 is over… The time is passing by like a TGV train – is it just me or it happens to everybody?
I look at my mates in the office and I see they know that it is 2010 now. However they don’t seem to bother – it looks like they have a new energy to work, to have a fresh start in a new year. Good for them! Having a spare time is something, we can’t afford nowadays – and it could be even harder, as some new challenges are right ahead. And you know what? I can read from our developers’ faces that they were expecting it! Even more – they were waiting for it, as new challenges are like an air to breath for them, like a petrol for a racecar – “too much” is not in their vocabulary.
What can I say – let the 2010 begin!