Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java @ 3525:b67af5b44d68
Hide the W/Q AT export button in fix analysis parameter tab.
flys-client/trunk@5324 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 31 Aug 2012 10:57:07 +0000 |
parents | e703555f8da1 |
children | 03de5c424f95 |
rev | line source |
---|---|
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.ui; |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 |
2939
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
3 import com.google.gwt.i18n.client.NumberFormat; |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
4 |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
5 import com.smartgwt.client.data.Record; |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
6 |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
7 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
8 |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
9 import de.intevation.flys.client.shared.model.Data; |
8e6b1df7c3b0
Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2938
diff
changeset
|
10 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
11 import java.util.ArrayList; |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
12 import java.util.List; |
906
39acba4b5f0b
Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
903
diff
changeset
|
13 |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 /** |
1590
4b773cfd11b5
Refactoring to ease code-reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1586
diff
changeset
|
15 * This UIProvider creates a widget to enter a single location (km). |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 */ |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 public class SingleLocationPanel |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
18 extends MultipleLocationPanel |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 { |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 /** |
2897
133820d1e6bf
cosmetic.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1617
diff
changeset
|
21 * Creates a new SingleLocationPanel instance. |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 */ |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 public SingleLocationPanel() { |
1590
4b773cfd11b5
Refactoring to ease code-reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1586
diff
changeset
|
24 picker = new LocationPicker(this); |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 } |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
28 /** Overridden to restrict to one entered value. */ |
1586
dbdf954dbe94
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1585
diff
changeset
|
29 @Override |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
30 public List<String> validate() { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
31 List<String> errors = new ArrayList<String>(); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
32 NumberFormat nf = NumberFormat.getDecimalFormat(); |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
34 saveLocationValues(locationPanel); |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
36 if (!locationPanel.validateForm()) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
37 errors.add(MSG.wrongFormat()); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
38 return errors; |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
39 } |
519
77234b1d009c
ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
284
diff
changeset
|
40 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
41 double[] values = getLocationValues(); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
42 double[] good = new double[values.length]; |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
43 int idx = 0; |
1590
4b773cfd11b5
Refactoring to ease code-reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1586
diff
changeset
|
44 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
45 // We want just one value to be allowed. |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
46 if (values.length > 1) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
47 errors.add(MSG.too_many_values()); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
48 } |
1590
4b773cfd11b5
Refactoring to ease code-reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1586
diff
changeset
|
49 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
50 for (double value: values) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
51 if (value < min || value > max) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
52 String tmp = MSG.error_validate_range(); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
53 tmp = tmp.replace("$1", nf.format(value)); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
54 tmp = tmp.replace("$2", nf.format(min)); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
55 tmp = tmp.replace("$3", nf.format(max)); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
56 errors.add(tmp); |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
57 } |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
58 else { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
59 good[idx++] = value; |
1590
4b773cfd11b5
Refactoring to ease code-reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1586
diff
changeset
|
60 } |
519
77234b1d009c
ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
284
diff
changeset
|
61 } |
77234b1d009c
ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
284
diff
changeset
|
62 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
63 double[] justGood = new double[idx]; |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
64 for (int i = 0; i < justGood.length; i++) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
65 justGood[i] = good[i]; |
563
469528551b78
Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
522
diff
changeset
|
66 } |
469528551b78
Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
522
diff
changeset
|
67 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
68 if (!errors.isEmpty()) { |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
69 locationPanel.setValues(justGood); |
519
77234b1d009c
ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
284
diff
changeset
|
70 } |
1591
8ab010967f78
Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1590
diff
changeset
|
71 |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
72 return errors; |
1591
8ab010967f78
Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1590
diff
changeset
|
73 } |
8ab010967f78
Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1590
diff
changeset
|
74 |
8ab010967f78
Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1590
diff
changeset
|
75 |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 /** |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 * This method returns the selected data. |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 * |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 * @return the selected/inserted data. |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 */ |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 public Data[] getData() { |
242
f9ca49e59fb6
Fixed the single location input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
238
diff
changeset
|
82 saveLocationValues(locationPanel); |
1617
f13a7c126f24
Allow selection of multiple locations with mouse in MultipleLocationPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1612
diff
changeset
|
83 double[] values = getLocationValues(); |
1387
3cbc7fbfff0e
Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
907
diff
changeset
|
84 Data[] data = new Data[values.length+1]; |
1586
dbdf954dbe94
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1585
diff
changeset
|
85 |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 for (int i = 0; i < values.length; i++) { |
1593
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1591
diff
changeset
|
87 data[i] = createDataArray(getDataItemName(), |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 Double.valueOf(values[i]).toString()); |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 } |
1612
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1594
diff
changeset
|
90 |
1586
dbdf954dbe94
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1585
diff
changeset
|
91 data[values.length] = createDataArray("ld_mode", "locations"); |
1387
3cbc7fbfff0e
Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
907
diff
changeset
|
92 |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 return data; |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 } |
2938
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
95 |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
96 |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
97 /* This is a copy of super.super.onRecordClick. Straighten out |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
98 this weird family. */ |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
99 /** |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
100 * Callback when an item from the input helper was clicked. |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
101 * Set the respective km-value in the location value field. |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
102 * @param e event passed. |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
103 */ |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
104 public void onRecordClick (RecordClickEvent e) { |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
105 Record record = e.getRecord(); |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
106 double[] selected = new double[1]; |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
107 try { |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
108 selected[0] = |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
109 Double.parseDouble(record.getAttribute("from")); |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
110 } |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
111 catch(NumberFormatException nfe) { |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
112 // Is there anything else to do here? |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
113 } |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
114 setLocationValues(selected); |
0de3665daf36
Fix issue706.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2897
diff
changeset
|
115 } |
3493
e703555f8da1
Issue 752.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2939
diff
changeset
|
116 |
e703555f8da1
Issue 752.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2939
diff
changeset
|
117 |
e703555f8da1
Issue 752.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2939
diff
changeset
|
118 protected String getLabelString() { |
e703555f8da1
Issue 752.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2939
diff
changeset
|
119 return MSG.single_location(); |
e703555f8da1
Issue 752.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2939
diff
changeset
|
120 } |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
121 } |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
122 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |