Otwarcie przeglądarki do wyboru pliku/foldera (/#glob/filepath)
Okno do wyboru pliku/foldera można otworzyć przy pomocy metody
Pm.CreateView. W parametrze
sViewPath należy wprowadzić ścieżkę globalną
"/#glob/filepath".
Przeglądarka ta
nie działa w
Web panelach.
Składnia:
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var oCreator = Pm.CreateView(oFrom, "/#glob/filepath", sViewPars, sFramePars);
oCreator.Open();
Dim oCreator
Set oCreator = Pm.CreateView(oFrom, "/#glob/filepath", sViewPars, sFramePars)
oCreator.Open
oFrom | (Object) Obiekt, który pośredniczy w otwarciu przeglądarki.
Obiekt określa z kąd szukać ścieżki, wobec kogo pozycjonować okno, kto będzie rodzic, itd.
- Wartość null oznacza, że zostanie zastosowany:
- Jeżeli tutaj zostanie określony obiekt PmgFrame (w skrypcie Pmg obiektu), wtedy przeglądarka zostanie otwarta w tej ramce.
- Jeżeli tutaj zostanie określony obiekt PmaPanel (w skrypcie Pma obiektu), wtedy przeglądarka zostanie otwarta w tym wybranym obiekcie.
Patrz właściwość PmViewCreator.From. |
sViewPars | (String) Parametry przeglądarki (różnią się w zależności od pojedyńczych typów przeglądarek).
Patrz właściwość PmViewCreator.View.
Dane są tutaj w formacie KeyVal. Na przykład "title:App files;initValue:#app:MyApp.log;mode:1;hide:1;defaultExt:ini;".
Właściwości oraz zdarzenia w obiekcie PmViewCreator.View:
initValue | [opcjonalne] (String) Początkowy wybór pliku/foldera, najlepiej w postaci PROMOTIC ścieżka do plików lub folderów. |
mode | [opcjonalne] (Long) (Long) Tryb wyboru. Określa, czy wynikiem będzie ścieżka do pliku lub foldera.
1 (domyślnie) - Wybór pliku.
2 - Wybór foldera. |
roots | [opcjonalne] (PmMap) Lista menu początków wyborów (root) (logicznych folderów, fizycznych dysków, …) w formie wżłobionej mapy (Submap). W celu prostego wytworzenia/ustawienia wżłobionej mapy (Submap) w pozycji innej mapy, można zastosować metodę PmMap.mapSetSubmapAt. Metoda ta zapewni, że w danej pozycji zostanie wżłobiona mapa a do niej dodatkowo potrafi zbiorczo dodać pozycje z łańcucha w formacie KeyVal.
Każdy początek wyboru (root) składa się z pary wartości: opis (titleN) oraz wartość (valueN), gdzie N to indeks (indeksowane od 0). Opisy (titleN) są opcjonalne. Na przykład w oryginalnym zapisie KeyVal przed konwersją do obiektu PmMap zapis może wyglądać następująco: "title0:Kociol1;value0:#data:Kociol1/;title1:Kociol2;value1:#data:Kociol2/;"
Jeżeli nie jest ustawione, wtedy menu będzie zawierać jedyny początek wyboru a ten zostanie określony z wartości initValue.
Dozwolone wartości (valueN) początków wyborów (root) to:
#xx:yy/zz - Ścieżki PROMOTIC włącznie z podfolderami, np. "value0:#pmres:Img/;value1:#appres:Img/;"
disk: - Urządzenia w formie liter dysków, np. "value0:c:;value1:d:;"
disk:yy/zz - Ścieżki w formie liter dysków włącznie z podfolderami, np. "value0:c:\Temp\;value0:d:\Data\;"
$disks - Automatycznie zostaną dodane wszystkie podłączone fizyczne dyski (litery dysków), np. "value0:$disks;" |
hide | [opcjonalne] (Long) Umożliwia ustawić, co należy ukryć.
0 (domyślnie) - Wyświetl wszyskie.
1 - Ukryj podfoldery.
2 - Ukryj pliki. |
existence | [opcjonalne] (Long) Umożliwia ustawić, czy przy wyborze pliku/foldera należy testować ich istnienie.
0 (domyślnie) - Nie testuj.
1 - Potwierdzenie, jeżeli wybrany plik/folder już istnieje.
10 - Wybrany plik/folder musi istnieć.
11 - Wybrany plik/folder nie może istnieć. |
defaultExt | [opcjonalne] (String) Domyślne rozszerzenie nowego pliku, jeżeli przy wyborze nie zostanie określone. Na przykład "csv". |
filter | [opcjonalne] (PmMap) Lista wyświetlanych filtrów plików w formie wżłobionej mapy (Submap). W celu prostego wytworzenia/ustawienia wżłobionej mapy (Submap) w pozycji innej mapy, można zastosować metodę PmMap.mapSetSubmapAt. Metoda ta zapewni, że w danej pozycji zostanie wżłobiona mapa a do niej dodatkowo potrafi zbiorczo dodać pozycje z łańcucha w formacie KeyVal.
Każdy filtr składa się z pary wartości: opis (titleN) oraz wartość (valueN), gdzie N to indeks (indeksowane od 0). Opisy (titleN) są opcjonalne. Na przykład w oryginalnym zapisie KeyVal przed konwersją do obiektu PmMap zapis może wyglądać następująco: "title0:Obrazki;value0:*.jpg,*.png,*.bmp;title1:Wszystkie pliki;value1:*.*;"
Jeżeli nie jest ustawione, wtedy w menu zostanie tylko jeden filtr dla wszystkich plików. |
title | [opcjonalne] (String) Nagłówek okna, jeżeli okno z nagłówkiem jest w ogóle wyświetlone (dla target:_blank;) |
onChange | [opcjonalne] (Function) Funkcja zdarzenia do opracowania zdarzenia zmiany w przeglądarce.
Dla JavaScript należy określić function.
Dla VBScript należy określić obiekt PmAction.
Funkcja posiada jeden parametr ev zawierający informacje o danym zdarzeniu.
ev.value - (String) Aktualnie wybrana ścieżka do pliku/foldera. |
onClose | [opcjonalne] (Function) Funkcja zdarzenia do opracowania zdarzenia zamknięcia przeglądarki.
Dla JavaScript należy określić function.
Dla VBScript należy określić obiekt PmAction.
Funkcja posiada jeden parametr ev zawierający informacje o danym zdarzeniu.
ev.CloseReason - (String) Identyfikator typu zamknięcia okna.
Wartość "ok" oznacza ważny wybór.
Wartość "cancel" lub "" oznaczają anulowany wybór.
ev.ReturnValue - (String) Ostatecznie wybrany plik/folder. |
---|
|
sFramePars | (String) Parametry dla ramki (frame), w której przeglądarka zostanie wyświetlona.
Patrz właściwość PmViewCreator.Frame.
Dane są tutaj w formacie KeyVal, na przykład "target:_blank;". |
---|
Parametry przeglądarki są w formie obiektu
PmMap, który jest napełniony z wartości parametru
sViewPars (typu
KeyVal) w metodzie
Pm.CreateView.
Napełnieniem z
KeyVal wartości wszystkie parametry są na początku zapisane w postaci łańcucha. Zawartość obiektu
PmMap może zostać w dowolny sposób zmieniona - pozycje można dodawać, usuwać lub zmieniać ich wartość.
Obiekt
PmMap może zawierać inne wżłobione obiekty
PmMap. W celu udostępnienia istniejącej lub wytworzenia nowej pozycji typu
PmMap można zastosować metodę
PmMap.mapSetSubmapAt.
Przykład1:
Wybór pliku zamieszczonego tylko w folderze aplikacji (tylko ini, log, lub wszystkie pliki)
JavaScriptWybierz oraz skopiuj do schowka
var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:App files;initValue:#app:MyApp.log;mode:1;hide:1;defaultExt:ini;", "target:_blank;modal:1;");
var oView = oCreator.View;
oView.mapSetSubmapAt("filter", "", "title0:Setting log;value0:*.ini,*.log;title1:All files;value1:*.*;");
oView.onClose = function(ev)
{
Pm.Debug("onClose ReturnValue=" + ev.ReturnValue);
};
oCreator.Open();
Przykład3:
Zapis tekstu do nowego lub wybranego pliku txt w folderze
Data (
#data:). Po zakończeniu wartość zwrotna jest opracowana w funkcji
onClose.
Zakładając, że w panelu istnieje metoda projektanta
"SaveFile", która przejmie parametry a przy pomocy metody
FileTextWrite zapisze plik a wynik zapisania zwraca z powrotem.
JavaScriptWybierz oraz skopiuj do schowka
function onClose(ev)
{
if (ev.CloseReason == "ok")
{
var sFilePath = ev.ReturnValue;
if (sFilePath != "")
{
var sText = "Hello world!";
var bDone = pMe.PmPanel.Methods.SaveFile(sFilePath, sText);
Pm.Debug("Save text to file=" + sFilePath + " is " + bDone);
}
}
}
var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:Create File;initValue:#data:;mode:1;defaultExt:txt;", "target:_blank;modal:1;");
oCreator.View.onClose = onClose;
oCreator.Open();