- Ace - darmowy, o dużych możliwościach. Wiele języków, wiele tematów kolorów, możliwość rozszerzania o własne języki
- {} Code Mirror - Darmowy do zastosowań niekomercyjnych. Możliwości jak Ace
- CodePress - Darmowy. Prawdopodobnie nierozwijany
- EditArea - Darmowy. Prawdopodobnie nierozwijany
Moje zmagania
... ze wszystkim ...
piątek, 25 stycznia 2013
Kolorowanie składni w polu
środa, 11 maja 2011
Obsługa tablic asocjacyjnych w JS
Przeglądanie tablicy asocjacyjnej w JS może sprawić pewne kłopoty. Nie działa właściwość
Przykład:
Cóż robić więc?
No więc jeśli mamy do czynienia z tablicą asocjacyjną, wystarczy zadeklarować ją w następujący sposób:
Uruchomienie powyższego przykładu z wprowadzoną taką zmianą, spowoduje wyświetlenie już tylko tych wartości, o które nam chodzi.
length, więc nie da się zastosować zwykłej pętli for. Natomiast przeglądanie za pomocą konstrukcji typu for(n in a), oprócz właściwych pozycji tablicy, zwraca również inne właściwości obiektu klasy Array.Przykład:
var a = [];
a["a"] = "A";
a["b"] = "B";
a["c"] = "C";
for(n in a){
console.log('a("' + n + '") = ' + a[n]);
}
W wyniku wykonania powyższego kodu, na konsoli (w Firebugu) ujrzymy mniej więcej takie coś:
a("a") = A
a("b") = B
a("c") = C
a("contains") = function (v) {
if (v == null) {
return false;
}
for (var i = 0; i < this.length; i++) {
if (this[i] == v) {
return true;
}
}
return false;
}
Widać, że oprócz wartości wpisanych do tablicy, przetwarzana jest również właściwość "contains", która jest wewnętrzną właściwością obiektu klasy Array.Cóż robić więc?
No więc jeśli mamy do czynienia z tablicą asocjacyjną, wystarczy zadeklarować ją w następujący sposób:
var a = {};
Uruchomienie powyższego przykładu z wprowadzoną taką zmianą, spowoduje wyświetlenie już tylko tych wartości, o które nam chodzi.
niedziela, 8 maja 2011
Włączanie skrolowania TrackPointem w Netbeans
Bardzo uciążliwą cechą skrolowania środkowym przyciskiem TrackPointa jest to, że nie działa w niektórych aplikacjach. Na przykład w NetBeans IDE.
Na szczęście można sobie z tym w prosty sposób poradzić.
Na szczęście można sobie z tym w prosty sposób poradzić.
- Musimy odnaleźć plik tp4Table.dat. Zależnie od wersji znajduje się w różnych katalogach. U mnie jest to
c:\Program Files\Apoint2K\tp4table.dat - Otwieramy go w edytorze tekstowym (na prawach administratora)
- Odnajdujemy w pliku następujący wiersz:
*,*,javaw.exe,*,*,*,WheelStd,1,9 - kopiujemy go i wklejamy poniżej, a następnie zamieniamy napis
javawnanetbeans - zapisujemy plik i od razu możemy się cieszyć skrolem w NetBeans
tp4table.dat jest wyjaśnienie poszczególnych ustawień. Analogicznie należy postępować w przypadku problemów ze skrolem w innych aplikacjach
środa, 16 lutego 2011
Wielowierszowe pole tekstowe
Zwykłe lotusowe pole tekstowe pod webem jest prezentowane jako pole jednowierszowe. Nie ma prostego sposobu, żeby było prezentowane jako wielowierszowe. Te są zarezerwowane dla pól richtextowych. Można jednak użyć pewnego patentu:
- Tworzymy pole tekstowe o nazwie Tresc i nadajemy mu id (np: tresc).
- Zamykamy to pole w elemencie div, który ukrywamy stosownym stylem (Zastosowanie formuł ukrywania zawodzi w tym przypadku - rozwiązanie nie działa):
<div id="trescDiv" style="display: none;">[POLE TEKSTOWE Z PUNKTU 1]</div> - Tworzymy pole tekstowe obliczane do wyświetlenia, o nazwie np. TextWeb i jako jego wartość wpisujemy:
"[<TEXTAREA NAME='Tresc' ROWS=4 COLS=54 WRAP=VIRTUAL>" + Tresc + "</TEXTAREA>]" - Po załadowaniu dokumentu, kawałkiem skryptu usuwamy pole z punktu 1.
var n = document.getElementById("tresc");
n.parentNode.removeChild(n);
W trybie edycji będzie w porządku, ale w trybie czytania nie bardzo. W związku z tym postępujemy następująco:
- Wszystko powyższe ukrywamy w trybie czytania
- Tworzymy computed text z formułą konwertującą nowe linie na
"<br>":
@ReplaceSubstring(Tresc; @NewLine; "<br>") - Żeby powyższe zadziałało, a do tego w kliencie wyświetlało się poprawnie, musimy skonwertować znaki nowego wiersza przesyłane z przeglądarki na
@NewLine. Przy zapisie dokumentu (w WebQuerySave) wykonujemy następujący skrypt:
Doc.Tresc = Evaluate(|@ReplaceSubstring(Tresc; @Char(13); @NewLine)|, Doc)
czwartek, 7 października 2010
Dojowe Datastore nie lubi obiektów w elementach danych (items)
Jeśli na taki trafi, to się wywala.
Przykład:
Jeśli teraz ta definicja będzie wyglądać np. tak:
Chyba, że tym obiektem będzie jedna ze specjalnych konstrukcji. Np. referencja, albo definicja elementu określonego typu:
Przykład:
{
"identifier": "id",
"label": "name",
"items": [{
"itemType": "dbDef",
"id": "0INDEX",
"path": "index_clean.nsf"
}]
}
Jeśli teraz ta definicja będzie wyglądać np. tak:
{
"identifier": "id",
"label": "name",
"items": [{
"itemType": "dbDef",
"id": "0INDEX",
"path": "index_clean.nsf",
"foo": {
"bar": "barValue"
}
}]
}
To dojo nie będzie potrafiło posługiwać się takim DataStoremChyba, że tym obiektem będzie jedna ze specjalnych konstrukcji. Np. referencja, albo definicja elementu określonego typu:
{
"identifier": "id",
"label": "name",
"items": [{
"itemType": "dbDef",
"id": "0INDEX",
"path": "index_clean.nsf",
"foo": {
"_reference": "barValue"
}
}]
}
{
"identifier": "id",
"label": "name",
"items": [{
"itemType": "dbDef",
"id": "0INDEX",
"path": "index_clean.nsf",
"foo": {
"_type": "barType",
"_value": "barValue"
}
}]
}
niedziela, 12 września 2010
Pułapka na żaby
Wykonanie testu przepuszczalności gruntu okazało się wykonaniem pułapki na żaby. Trzy dziury w ziemi, o głębokości jakichś 70 cm, wypełnione wodą, okazały się przeszkodą nie do pokonania dla żab, które tam wpadły (wskoczyły celowo?)
A to niektóre okazy:
Kumak nizinny:
- Spokojny
- przestraszony
Jakieś inne trio (nazw nie znam, ale są urocze):
Oczywiście po sesji, żabki wróciły na wolność :)
A to niektóre okazy:
Kumak nizinny:
- Spokojny
- przestraszony
Jakieś inne trio (nazw nie znam, ale są urocze):
Oczywiście po sesji, żabki wróciły na wolność :)
niedziela, 5 września 2010
Pobieranie wszystkich kategorii występujących w widoku
Czasem potrzeba wiedzieć jakie w widoku występują kategorie.
Najstarszym sposobem dowiedzenia się tego, jest oczywiście wykorzystanie
Problem się pojawia, gdy wynik
Można wtedy sobie poradzić na dwa sposoby:
Najstarszym sposobem dowiedzenia się tego, jest oczywiście wykorzystanie
@Formuł:@Unique(@DBColumn("":""; "":""; "Widok", n))
n = Numer kolumny z kategorią
W skrypcie można powyższą formułę umieścić w komendzie EvaluateProblem się pojawia, gdy wynik
@DBColumn przekroczy 64KB.Można wtedy sobie poradzić na dwa sposoby:
- Pobrać kolekcję wszystkich entries z widoku i przeglądać je w pętli, zbierając w jakiejś tablicy nazwy tych, które mają
isCategoryustawione naTrue. Niestety, w przypadku, gdy widok zawiera tysiące dokumentów, to rozwiązanie z oczywistych powodów odpada.
- Zrobić drugi widok, z identyczną formułą selekcji, który będzie zawierał tylko jedną kolumnę - tę kategoryzowaną. We właściwościach widoku należy jeszcze zaznaczyć opcję Generate unique keys in index. W efekcie otrzymamy widok, który będzie zawierał tylko listę kategorii występujących w widoku oryginalnym.
Subskrybuj:
Komentarze (Atom)


