Seite 3 von 4

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 20:09
von ds10
Verfolge doch einfach nach, wohin dich mMangePanel.selectFilter(filter); führt. Genau so machst du das dann auch für die Senderauswahl.

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 21:02
von Sheldon2012
Also ich hab ejetzt im FavoritesPlugin

Code: Alles auswählen


      @Override
      public void scrolledToChannel(Channel channel) {
    	if(mMangePanel != null && reactOnFilterChange()) { 
    		mMangePanel.setSelectedChannel(channel);
     	}
      }

und im ManageFavoritesPanel

Code: Alles auswählen


  public void setSelectedChannel(Channel channel) {
	mProgramListPanel.setSelectedChannel(channel);
  }

aber es funktioniert immer noch nicht. Was mache ich falsch?

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 21:07
von ds10
Rufst du denn in FilterableProgramListPanel.setSelectedChannel(channel); auch JComboBox.setSelectedItem(Channel) auf? Ob der Aufruf eines Senders in der Liste auch wirklich in FilterableProgramListPanel.setSelectedChannel(channel); ankommt, kannst du mit einem simplen System.out.println("setSelectedChannel called") testen.

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 21:19
von Sheldon2012
Ich hab emal die Bedingung reactOnFilterChange() weggelassen. Jetzt klappt es.
Wie hast Du denn in der Sendungsliste die Sendericons in Combobox geladen?

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 21:23
von ds10
Siehe Sendungsliste ProgramListPanel.java Zeile 168 und 698-709.

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 21:39
von Sheldon2012
Yep! Super klappt!

Dann habe ich der Senderbox noch einen reset-Button gestiftet, damit ich wieder auf "Alle Sender" zurück komme.
Das ist doch wirklich ein schönes Feature. Ich verstehe gar nicht, warum Du das nicht allen anbieten möchtest.
Aber das ist natürlich Deine Enscheidung. Aber so erfüllt die Senderliste in den Lieblingssendungen einen Zweck.

VIELEN DANK FÜR DEINE HILFE !!! :D

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 23:01
von Sheldon2012
Ach ja! Wo finde ich eigentlich das Property-File?

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 23:05
von ds10
Property wofür?

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 23:25
von Sheldon2012
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.

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 23:36
von ds10
Das ist die ui.properties im util.ui-Verzeichnis.

Re: Sendungsliste - Navigation

Verfasst: 30 Jun 2015, 23:40
von Sheldon2012
Danke! Dann mache ich das noch ordentlich! :)

Re: Sendungsliste - Navigation

Verfasst: 03 Jul 2015, 19:57
von Sheldon2012
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

Verfasst: 04 Jul 2015, 10:15
von ds10
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

Verfasst: 04 Jul 2015, 13:05
von Sheldon2012
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

Verfasst: 04 Jul 2015, 13:17
von ds10
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
}