Mariusz
P.
Specjalista ds.
Rozwoju
Temat: Jak wykorzystać zmienną z jednego słuchacza w innym?
GUI koduję w SWT. Mam jeden słuchacz, który otwiera directoryDialog. Filtruję tam również pliki pod kątem danego rozszerzenia i podaję na wyjściu (na etykietę) listę tych plików. W drugim słuchaczu chciałbym już tylko zliczać ilość tych plików i nazwę każdego wypisywać w tabeli. Czy można pewne elementy z jednego słuchacza wykorzystać w innym (głównie zmienne)? Sugerowano mi, żeby założyć nowe klasy implementujące listenera, skorzystać z wzorca mediator, zrobić dziedziczenie klas, zaimplementować własne klasy listenerów itd. Nie wiem tylko, czy to nie jest za dużo dla mnie teraz i czy to wszystko potrzebne. Może da się jakoś prościej? Jak strzelanie do muchy z armaty. Mam nadzieję, że się nie narzucam. Chodzi mi w sumie o ogólne wskazówki co mam teraz zastosować i jakim torem pójść.Mariusz P. edytował(a) ten post dnia 08.03.10 o godzinie 23:35
final Text text2 = new Text(group2, SWT.MULTI | SWT.V_SCROLL);
text2.setEditable(false);
{
FormData data = new FormData();
data.right = new FormAttachment(100);
data.left = new FormAttachment(0);
data.top = new FormAttachment(group1,5);
data.bottom = new FormAttachment(100,-5);
text2.setLayoutData(data);
text2.setBackground(text2.getDisplay().getSystemColor(SWT.COLOR_WHITE));
/*Display display = Display.getDefault();
text2.setBackground(new Color(display, new RGB(255, 0, 0)));*/
}
button1.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event e) {
DirectoryDialog directoryDialog = new DirectoryDialog(shell, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
directoryDialog.setText("Przeglądanie w poszukiwaniu folderu");
directoryDialog.setMessage("Wybierz katalog");
try {
String selectedDirectory = directoryDialog.open();
if (selectedDirectory != null) t1.setText(selectedDirectory);
DirList listFiles = new DirList();
String fileType = ".*"+File.separatorChar+".mp3";
String[] filterFiles = listFiles.getDirList(fileType, selectedDirectory);
if (filterFiles.length == 0) text2.setText("Brak plików mp3 w wybranym katalogu.");
else text2.setText("");
for (String file : filterFiles) {
text2.append(selectedDirectory+File.separatorChar+file+"\n");
}
}
catch (NullPointerException ex) {
text2.setText("Nie wybrano żadnego katalogu.");
}
}
});