Sendungsliste - Navigation

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: Sendungsliste - Navigation

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 16:56

Ich habe das Problem schon gelöst! Danke für Deine Hinweise!

Re: Sendungsliste - Navigation

von ds10 » 04 Jul 2015, 16:48

Werden die Filter den auch aus der Combobox gelöscht? Ich kann dir hier aber nicht weiterhelfen, den Fehler musst du selber finden, denn du hast den Quellcode. Ich habe auch einfach keine Lust mir das alles anzusehen.

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 16:39

Das habe ich auch probiert! Klappt aber nicht!

Re: Sendungsliste - Navigation

von ds10 » 04 Jul 2015, 15:07

Code: Alles auswählen

if(titleFilterValues == null) {
  titleFilterValues = new ArrayList<ProgramFilter>();
}
else {
  titleFilterValues.clear();
}

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 15:01

Eigentlich muß ich ja auch in der

private void filterPrograms(ProgramFilter filter, boolean fromTitleFilter)

statt eines

titleFilterValues = new ArrayList<ProgramFilter>();

noch ein

titleFilterValues.clear()

einbauen, da ich sonst mehrfache Einträge bekomme. Aber das will nicht klappen. Tipp?

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 14:45

Yep! Das war der Fehler! Danke für den Tipp! :D

Re: Sendungsliste - Navigation

von ds10 » 04 Jul 2015, 13:34

Enthält denn die Liste mit den Filtern vorher überhaupt Einträge. Vielleicht hast du eine Klassenvariable erzeugt, arbeitest aber immer noch zusätzlich mit einer lokalen Liste. Überprüfe mit System.out.println was genau passiert.

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 13:29

Habe ich bei den anderen auch so gemacht. Bei dieser Box hatt ich ja die Probleme und habe rumprobiert.
Also jetzt so, aber ohne Erfolg.

Code: Alles auswählen


              mTitleFilterBox.removeAllItems();   
                for(ProgramFilter filter : titleFilterValues) {
                     if (filter.getName().toUpperCase().startsWith(a.toUpperCase())) {
                        mTitleFilterBox.addItem(filter);
                        st++; 
                    }
                }


Re: Sendungsliste - Navigation

von ds10 » 04 Jul 2015, 13:17

Das ist recht unleserlicher Code, als erstes solltest du es dir einfacher machen.
Eine Liste kann man sehr einfach komplett durchsuchen, ohne dort mit toArray() zu arbeiten und zwar folgendermaßen:

Code: Alles auswählen

ArrayList<String> list = new ArrayList<String>();

list.add("A");
list.add("B");
list.add("C");

for(String listEntry : list) {
  // do something with listEntry
}

Re: Sendungsliste - Navigation

von Sheldon2012 » 04 Jul 2015, 13:05

Das habe ich jetzt mal probiert, aber irgenwie funktioniert der Vergleich nicht.
Siehst Du, was ich falsch mache?

Die auskommentierten Abschnitte sind die Alternative, die zum jeweiligen Index in der Box springt.
Das geht bei mir nur in dieser Box, weil die als einzige alphabetisch sortiert sein soll.

Code: Alles auswählen

      mTitleFilterBox.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
          @Override
          public void keyReleased(KeyEvent e) {
       	     if (e.getKeyCode() != 38 && e.getKeyCode() != 40 && e.getKeyCode() != 10) {
                String a = mTitleFilterBox.getEditor().getItem().toString();
                int st = 0;
             
                /*
                List<String> titleFilters = new ArrayList<String>();
                for (int i = 0; i < mTitleFilterBox.getItemCount(); i++) {
                   titleFilters.add(mTitleFilterBox.getItemAt(i).toString());	
                } 
                */            
                
                mTitleFilterBox.removeAllItems();              
                for (int i = 0; i < titleFilterValues.toArray().length; i++) {
                    if (titleFilterValues.get(i).getName().toUpperCase().startsWith(a.toUpperCase())) {
                        mTitleFilterBox.addItem(titleFilterValues.get(i));
                        st++; 
                    }
                }
                
                /*
                for (int i = 0; i < titleFilters.toArray().length; i++) {
                   if (titleFilters.toArray()[i].toString().toUpperCase().startsWith(a.toUpperCase())) {
                      mTitleFilterBox.setSelectedIndex(i);	
                      st++;  
                      break;
                   }
                }
                */
             
                mTitleFilterBox.getEditor().setItem(new String(a));
                mTitleFilterBox.hidePopup();
                if (st != 0) {
            	   mTitleFilterBox.showPopup();
                }

             }
          }
      });

Re: Sendungsliste - Navigation

von ds10 » 04 Jul 2015, 10:15

Der Sendungstitelfilter wird ja immer nach dem Filtern neu erstellt, dort gibt es eine ArrayList, die alle Sendungstitelfilter enthält (titleFilterValues in Zeile 333 im Originalcode). Die kannst du auch zur Klassenvariable machen, die Einträge der Liste sind alle vom Typ SimpleTitleFilter, mit Ausnahme des Alles-Filters.

Re: Sendungsliste - Navigation

von Sheldon2012 » 03 Jul 2015, 19:57

Hallo,

ich habe noch ein wenig gebastelt und die Combo-Boxen mal editierbar und vorselektierbar gemacht.
Wenn ich nun z. B. in der Senderfilter-Box "z" eingebe, wird die Combo-Box nur mit Einträgen gefüllt, die mit "z" beginnen
Für die Sender.und Sendungsfilter klappt das prima. Dort habe ich Arrays wie Channel[] oder Programfilter[] über die ich iterieren kann.

Nur bei den Sendungstitelfiltern habe ich noch ein Problem. Wie kann ich den Inhalt dieser Combobox in ein entsprechendes
Array schreiben? Hast Du da einen Tipp für mich?

Gruß

Sheldon

Re: Sendungsliste - Navigation

von Sheldon2012 » 30 Jun 2015, 23:40

Danke! Dann mache ich das noch ordentlich! :)

Re: Sendungsliste - Navigation

von ds10 » 30 Jun 2015, 23:36

Das ist die ui.properties im util.ui-Verzeichnis.

Re: Sendungsliste - Navigation

von Sheldon2012 » 30 Jun 2015, 23:25

Für den Label "Senderfilter:" der Combobox Senderfilter. Zudem habe ich noch ein paar reset-Buttons eingeführt.
Die Tooltips bzw Label könnten da auch hinterlegt werden. Derzeit habe ich dafür Klassenfelder verwendet.

Falls Du es Dir mit der Implmentierung doch noch anders überlegen solltest, schicke ich dir gerne meine Version.
Ich finde das so wirklich sehr praktisch.

Nach oben