>>Und da hab ich dann auch geschrieben, dass das eigentlich total simpel geht mit nem @Command (zumindest gings bei mir)<<
Dann hilf mir doch mal auf die Sprünge: Ich konnte überhaupt keinen @Command-Befehl finden, der einen bestehenden, selektierten Ordner löscht.
Ich hab´s daher mit LS gemacht. uiworkspace.reloadwindow bringt aber nix im Bezug auf das Entfernen des Ordnernamens aus der Navigation.
wie gesagt. den Ordner löschen selbst mit nem LotusScript-Agent.
Mein Vorgehen war folgendes:
Alles in einer Formel-Aktion
1. Name des Ordners ermitteln mit @Formel und ins Userprofil schreiben (fällt bei dir weg, du kennst den Ordner)
2. Agent aufrufen, der Ordner löscht (ToolsRunMacro). Der Agent selbst ist in LS geschrieben.
3. Dann entweder @Command( [ReloadWindow] ) oder @Command( [RefreshWindow] ). Ich weiß nicht mehr genau welches von beiden, aber eins hat funktioniert.
also so ungefähr hat das ausgesehen:
folderName := @Picklist(...);
@SetProfileField(...folderName...);
@Command([ToolsRunMacro]; LSAgentDerDenOrdnerLöscht);
@Command( [ReloadWindow] ) (vielleicht auch Refresh; vielleicht auch @PostedCommand - mein Gehirn ist ein Sieb)
>>ich meinte, dass im Hauptframe (wo jetzt die Ansicht ist) das Browserfenster angezeigt wird.<<
Hatte ich ausprobiert. Scheinbar hat da die perweb.nsf auch die Finger mit drin - es ist mir nicht gelungen, einen TargetFrame zu spezifizieren...
egal. is ja auch nur mein Geschmack. Wenn andere populäre Reader auch so aussehen wie deiner, dann kannst du ja eigentlich nicht daneben liegen
Das mit dem encoding war es nicht.
Es war eher, dass man mit readLine der Character Stream Klassen (www.javabuch.de, Kapitel 18) ein bischen vorsichtig sein sollte. Deshalb habe ich ByteStream-Klassen verwendet. (www.javabuch.de, Kapitel 19).
In der Eclipse Konsole wird das korrekt angezeigt. Auf der Windows-Konsole sehr vermutlich nicht (erwartet line feed + carriage return für neue Zeile). Deshalb zeigt die main-Methode nach dem eigentlichen String die einzelnen chars sowie deren Hex-Werte in Klammern an.
Wie alle wissen, kann die FensterBufferGrösse der Windows-Konsole über Eigenschaften/Layout verlängert werden.
Da es wirklich ziemlich allgemein ist, und ich *extrem wichtige Teile* weggelassen habe.
Hier ist code. :
import java.io.*;
import java.net.*;
/**
* @author Axel
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class GetRSSFeed {
public String getRSSFeed(String urlToRead) {
URL url;
HttpURLConnection conn = null;
// Stream (not Writer!). So werden einzelne bytes gelesen.
InputStream is = null;
// Strings sind inmutable.
// durch StringX = StringX + StringY; wird jedesmal ein neuer StringX erzeugt.
// Bei String Konkenatierung StringBuffer benutzen und am Ende String aus gesamten
// StringBuffer erzeugen.
StringBuffer bufResult = new StringBuffer();
int c = 0;
try {
url = new URL(urlToRead);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
is = new BufferedInputStream(conn.getInputStream());
// einzelne Bytes werden gelesen
// -1 ist endOfStream character
while ((c = is.read()) != -1) {
// int in char gecastet.
bufResult.append((char) c);
}
is.close();
is = null;
} catch (IOException e) {
e.printStackTrace();
// nicht geschlossene connection panik. immer besser
try {
if (is != null) {
is.close();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
// in StringBuffer wurden chars gesammelt. Der wird jetzt in String konvertiert.
return bufResult.toString();
}
public static void main(String[] args) {
String url = null;
if (args.length < 1) {
System.out.println(
"ohne Argument wird 'http://www.heise.de/newsticker/heise.rdf' eingelesen. Für beliebige Feeds mit java GetRSSFeed dieURL starten.");
url = "http://www.heise.de/newsticker/heise.rdf";
} else {
System.out.println("lese '" + args[0] + "'");
url = args[0];
}
GetRSSFeed test = new GetRSSFeed();
String result = test.getRSSFeed(url);
System.out.println("result=\n" + result);
System.out.println("-----------------------\nEINZELNE CHARS (HEX-Value)");
for (int i = 0; i < result.length(); i++) {
System.out.println ( result.charAt(i) + " ("+ Integer.toHexString(result.charAt(i)) + ")" );
//+ " ("+ Integer(result.toHexString(charAt(i)) + ")");
}
}
}