• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

BE473

2cachefix

Geomaster
Wenn ich CW starte und einen Filter setzen möchte erhalte ich immer die Meldung:
java.lang.ArrayIndexOutOfBoundsException
at java.lang.String.charAt(String.java)
at CacheWolf.FilterScreen.<init>(FilterScreen.java:63)
at CacheWolf.MainMenu.onEvent(MainMenu.java:261)
at ewe.ui.Control.postEvent(Control.java)
at ewe.ui.MenuState.onEvent(MenuState.java)
at ewe.ui.Control.sendToListeners(Control.java)
at ewe.ui.Control.postEvent(Control.java)
at ewe.ui.Menu.postEvent(Menu.java)
at ewe.ui.Control.notifyAction(Control.java)

und weiter nichts.
 

Bilbowolf

Geowizard
Welche plattform? Welche Einstellungen?


Hinweis: Archiviert / Besitzer / Und nicht findbar funktionieren noch nicht richtig.
 

salzkammergut

Geomaster
Ich hatte das gleiche Problem. Es stammt von einem Bug beim Schreiben des Filters in die index.xml, den ich mit Rev 472 gefixt habe. Wenn Deine index.xml aber durch eine frühere BE korrupt ist, bekommst Du noch immer diese Meldung.

Öffne bitte die index.xml mit einem Text-Editor (z.B. notepad) und suche die Zeile, die mit
Code:
<FILTER rose
beginnt. Sie sollte mit
Code:
var = "xxxx" />
enden, wobei x für eine 1 oder 0 steht. Wenn das Ende so oder so ähnlich aussieht
Code:
var ="/">"/>
dann ersetze es durch
Code:
var = "1111" />
wobei das Leerzeichen nach dem zweiten Hochkomma ganz wichtig ist, damit der Filter wieder richtig gelesen wird.

Lass uns wissen ob das hilft.

Grüße
salzkammergut
 

salzkammergut

Geomaster
@Bilbowolf: Ich habe mich durch diesen Bug etwas intensiver mit dem Filter auseinandergesetzt und ihn gründlich optimiert, da er auf meinem PDA recht langsam ist. Werde die Änderungen erst heute Abend einchecken, da ich derzeit keinen https Zugang auf berlios habe.

Ein Problem habe ich noch mit der Logik: Eigentlich haben wir derzeit 9 Filter, die verUNDet werden, d.h. nur die Caches, die alle Filterkriterien erfüllen werden angezeigt. Die derzeit implementierten Filter sind:

1. Entfernung
2. Schwierigkeit
3. Terrain
4. Archiviert
5. Nicht suchbar
6. Gefunden
7. Besitzer
8. Cachetyp (tradi, multi, virtual ...)
9. Richtung (N, NW, SSE, ...)

Bei den Filtern für Cachetype [8] und der Kompassrose [9] muss zumindestens EIN Häkchen gesetzt sein, sonst ergibt der Filter die leere Menge.

Die Filter 4-6 sind anders: Wenn sie KEIN Häkchen haben, sind alle Caches selektiert. Wenn sie ein Häkchen haben, dann nur die entsprechenden. Konsequenterweise müßte es zum Häkchen "archiviert" auch eines geben "nicht archiviert". Zu "gefunden" auch "nicht gefunden" usw. Wenn beide angehakt sind, bekomme ich alle Caches etc. etc. Dann wären diese Filter ähnlich wie 8 und 9. Das ist zwar ein Platzproblem im Dialog, aber von der Logik viel leichter zu durchschauen.

So wie sie derzeit angeordnet sind, ist auch nicht klar, daß es sich um vier verschiedene Filter handelt und nicht um die Elemente eines Filters.

Ich habe schon überlegt, vier Karteikarten zu machen:

1. Cachetyp (tradi, multi usw.)
2. Richtung und Distanz
3. Status (Archiviert, Nicht suchbar, Gefunden, Besitzer)
4. Andere (Schwierigkeit, Terrain)

Eine weitere Idee wäre auch durch eine farbliche Änderung des Hintergrundes anzuzeigen, wenn ein Filter die Anzahl der Caches einschränkt. D.h. sobald mindestens ein Häkchen der Kompassrose abgewählt wird, ändert sich die Hintergrundfarbe des Kompassrosefilters und man weiß sofort, daß dieser Filter etwas bewirkt. Mir ist nämlich beim Testen einige male passiert, daß ich versehentlich einen Filter aktiviert hatte und mich dann gewundert habe, warum gewisse Caches nicht angezeigt werden.

Die Idee mit der Farbe könnte unabhängig von den Karteikarten realisiert werden (bei den Karteikarten könnte der Reiter eingefärbt werden, wenn der Filter aktiv ist).

P.S.: Hast Du vor die numerischen Filterwerte für Distanz/Entfernung/Schwierigkeit in profile.xml zu speichern?
 

Bilbowolf

Geowizard
Die Filter 4-6 sind anders: Wenn sie KEIN Häkchen haben, sind alle Caches selektiert. Wenn sie ein Häkchen haben, dann nur die entsprechenden. Konsequenterweise müßte es zum Häkchen "archiviert" auch eines geben "nicht archiviert". Zu "gefunden" auch "nicht gefunden" usw. Wenn beide angehakt sind, bekomme ich alle Caches etc. etc. Dann wären diese Filter ähnlich wie 8 und 9. Das ist zwar ein Platzproblem im Dialog, aber von der Logik viel leichter zu durchschauen.

Das ist so nicht angedacht gewesen. Sie sollten tatsächlich verundet werden.

Beispiel Cache ist NNW und Tradi und Gefunden.

Cache wird angezeigt, wenn bei allen drei Kriterien ein Häckchen gesetzt ist. Der Cache verschwindet aus der Liste, wenn "Gefunden" nicht angetickt ist.

Der Filter sollte allso so funktionieren (also bei all den angtick optionen), dass nur die Caches gezeigt werden, die allen Kriterien genügen.

Beispiel: Man möchte die Gefundenen nicht sehen --> Tick von Gefunden entfernen, alle Richtungen und Typen bleiben angetickt.

Ich hatte einfach noch nicht genug Zeit alle Varianten richtig zu programmieren.

@Salzkammergut: Werde Deinen Vorschlag (PN) mal testen.
 

Bilbowolf

Geowizard
@Salzkammergut:

In deinem Vorschlag hast du den Filter wieder auf Negativ gesetzt. D.h. Du blendest aus, was dem Kriterium entspricht --> so war das früher.

Was aber einige haben wollten ist --> nur die Caches einblenden, die dem Kriterium entsprechen.

Ich hatte damals argumentiert: Kein Problem, ausblenden lassen, invertieren und gut ist. Gegenargument --> Damit habe ich ein "ODER" Filter, somit fungiert der Inverter nicht als Ziel nur die Caches anzuzeigen, die den Kriterien entsprechen.
 

salzkammergut

Geomaster
Hallo BilboWolf,

ich will eigentlich auch daß der Filter "positiv" ist, d.h. daß Datensätze, die den oben angeführten 9 Bedingungen entsprechen, ausgewählt werden.

Bei der Version des Filters, die ich bearbeitete war der Code wie folgt
Code:
if(foundByMe == true){
   inFound = 0;
   matchFound = 1;
   if(ch.is_found) inFound = 1; 
}
was bedeutet, daß bei fehlendem Häkchen die "gefunden"-Eigenschaft des Caches ignoriert wird. Wohlgemerkt: ignoriert, es werden also nicht wie erwünscht die nicht gefundenen Caches angezeigt.

Ich sehe gerade, daß dieses wohl nicht gewünschte Verhalten mit Rev 473 korrigiert wurde, aber nur für die "gefunden" Eigenschaft. Warum nicht auch für "archiviert", "nicht verfügbar" etc.?

In der optimierten Version müßte man daher schreiben
Code:
			if(foundByMe !=ch.is_found){ ch.is_filtered=true; continue; }
um das gewünschte Verhalten zu erreichen. Ditto für die anderen Bedingungen.

Das ändert aber nichts daran, daß die zwei Zeilen mit "archiviert", "nicht suchbar", "gefunden", "Besitzer" VIER Filter darstellen, aber die jeweils vier Zeilen mit den Cachetypen und den Richtungen jeweils nur EINEN Filter, was etwas verwirrend ist.

Was hältst Du von der Idee mit der Farbe bzw. mit den Tabs?

P.S.: Ich schicke Dir per PN auch noch die überarbeitete FilterScreen mit einigen Fixes.


P.P.S: Da fällt mir gerade auf: Wie kann man mit nur einem "gefunden" Häkchen sowohl "gefundene" als auch "nicht gefundene" Caches anzeigen, aber trotzdem nach Richtung filtern? Das geht ja gar nicht! Du brauchst dann unbedingt auch ein "nicht gefunden" Häkchen, wie bereits in einem früheren Beitrag erwähnt.
 

pfeffer

Geowizard
@Salzkammgut: Dein Vorschlag hört sich für mich gut und übersichtlich an. Ich hatte das bisher auch nicht kapiert, wann da was gefiltert werden soll. Aber Deinen Vorschlag verstehe ich :)

Gruß,
Pfeffer.
 
OP
2cachefix

2cachefix

Geomaster
also die Idee mit der farblichen Kennung finde ich gut. Manchmal ist man sich nicht sicher, ob bzw. welcher Filter gesetzt ist.
 

Bilbowolf

Geowizard
Ich sehe gerade, daß dieses wohl nicht gewünschte Verhalten mit Rev 473 korrigiert wurde, aber nur für die "gefunden" Eigenschaft. Warum nicht auch für "archiviert", "nicht verfügbar" etc.?

Weil ich da noch nicht dazu gekommen bin. Da sind wir gerade in den Landeanflug gegangen und ich musste die Kiste ausschalten.

Re: Gefunden nicht gefunden.

Da alle nicht gefunden per default angezeigt werden, braucht man nur noch den Hacken für "Zeige _auch_ die gefundenen", was hier der Fall ist ;)

Möchte man nur die Gefunenden sehen wird der Filter invertiert.

Mit der farblichen Kennzeichnung habe ich kein Problem, ist sogar gut. Das hatte ich mit den "-----------------" versucht.
 

salzkammergut

Geomaster
Der überarbeitete Filter mit farblicher Kennung der aktiven Sub-filter ist mit Rev 476 verfügbar. Ausserdem wurde bei Terrain und Schwierigkeit noch die Möglichkeit auf Gleichheit abzufragen eingebaut und der Filter ist deutlich schneller.
 

pfeffer

Geowizard
@Salzkammergut: das sieht gut aus (SVN 476)!
Das Aufheben eines Filters klappt aber leider nicht :-(
Ich hatte das Häcken bei gefundenen entfernt. Daraufhin wurden die von mir gefunden korrekt ausgeblendet. Dann habe ich das Häckchen wieder hin gemacht -> Meine Funde wurden nicht wieder angezeigt :-(
Auch der Klick (danach) auf "Filter aufheben" hat sie nicht wieder zum Vorschein gebracht :-(

Gruß,
Pfeffer.
 

Bilbowolf

Geowizard
Ich werde heute Abend an dem Ding noch arbeiten. Danach oder morgen erfolgt der code freeze und ich veröffentliche den release candidate. Gleichzeitig wird in SVN ein Branch erstellt.
 

MiK

Geoguru
Wäre es nicht besser von einem "feature freeze" zu reden? Zum Bugfixing soll der Code ja schon noch geändert werden bis zum Release.

Ciao

MiK
 

pfeffer

Geowizard
von mir aus müssen wir keinen neuen branch aufmachen.
Jetz bin ich einverstanden, erstmal bugs zu beheben :)

ich habe keine Erfahung mit branches - hinther muss das ja dann zusammengeüfhrt werden... das klingt nach überflüssiger Arbeit.

Gruß,
Pfeffer.
 

salzkammergut

Geomaster
@pfeffer: Kannst Du genaueres zu Deinem Problem mit den gefundenen Caches sagen. Bei mir funktioniert das nämlich tadellos.

Wenn Du die gefundenen ausblendest und anschliessend wieder einblendest, werden sie am Ende hinzugefügt! Hast Du dort geschaut?

@Bilbowolf: Ich bin auch eher für keinen Branch.

Ich verspreche auch hoch und heilig, für eine limitierte Zeit keine neuen Features hinzuzufügen, sondern nur an Bugfixes bzw. Codebereinigungen zu arbeiten.

Für wann wäre denn die Release von 0.9n geplant?

Können wir einmal eine Zusammenstellung aller noch offenen Bugs erstellen. Das berlios Bug-System ist mir eigentlich zu aufwendig, ein eigener Thread würde reichen, wo wir alles nummeriert hineinkopieren.
 
Oben