Promotic

Otwarcie przeglądarki do wyboru foldera/pliku (/#glob/filepath)

Okno do wyboru folderu/pliku 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();
Parametry przeglądarki:
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:
- obiekt PmaPanel, jeżeli metoda CreateView jest wołana w skrypcie Pmg obiektu.
- aktywny PmaWorkspace, jeżeli metoda CreateView jest wołana w skrypcie Pma obiektu.
- 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)
Dane są tutaj w formacie KeyVal, na przykład "nazwa1:wartość1;nazwa2:wartość2;".
Patrz właściwość PmViewCreator.View.

Parametry przeglądarki:
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 - Początki ścieżek PROMOTIC, np. "value0:#pmres;value1:#appres;"
#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 wszystkie.
2 - Ukryj pliki.
existence[opcjonalne] (Long) Umożliwia ustawić, czy podczas wyboru 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 podczas dodawania 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, o ile 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
Dane są tutaj w formacie KeyVal, na przykład "target:_blank;".
Patrz właściwość PmViewCreator.Frame.
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ład2:
Wybór tylko ścieżki do foldera zamieszczonego w tej aplikacji (#app:). Po zakończeniu wartość zwrotna jest opracowana w funkcji onClose.
JavaScriptWybierz oraz skopiuj do schowka

function onClose(ev)
{
if (ev.CloseReason == "ok")
{
Pm.Debug("onClose ReturnValue=" + ev.ReturnValue);
}
}

var oCreator = Pm.CreateView(null, "/#glob/filepath", "title:PmAppFiles,initValue:#app:;mode:2;", "target:_blank;modal:1;");
oCreator.View.onClose = onClose;
oCreator.Open();
Przykład3:
Zapis tekstu do nowego lub wybranego txt pliku 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();

Historia:
Pm9.00.09: Wytworzono
© MICROSYS, spol. s r.o.