Revision 3007

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.361/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.tools.util.impl.ToolsUtilLibraryImpl
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.361/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/desktopopen/DefaultDesktopOpen.java
1
package org.gvsig.desktopopen;
2

  
3
import java.awt.Desktop;
4
import java.io.File;
5
import java.io.IOException;
6
import java.net.URI;
7
import java.util.ArrayList;
8
import java.util.List;
9
import org.apache.commons.lang3.StringUtils;
10
import org.slf4j.Logger;
11
import org.slf4j.LoggerFactory;
12

  
13
/*
14
 * Based on portions of code of MightyPork, http://www.ondrovo.com/
15
 * extracted from :
16
 * http://stackoverflow.com/questions/18004150/desktop-api-is-not-supported-on-the-current-platform
17
 */
18
@SuppressWarnings("UseSpecificCatch")
19
public class DefaultDesktopOpen implements DesktopOpen {
20

  
21
    private static Logger LOGGER = LoggerFactory.getLogger(DefaultDesktopOpen.class);
22

  
23
    public enum EnumOS {
24

  
25
        linux, macos, solaris, unknown, windows;
26

  
27
        public boolean isLinux() {
28
            return this == linux || this == solaris;
29
        }
30

  
31
        public boolean isMac() {
32
            return this == macos;
33
        }
34

  
35
        public boolean isWindows() {
36
            return this == windows;
37
        }
38
    }
39

  
40
    @Override
41
    public boolean browse(URI uri) {
42
        if (browseDESKTOP(uri)) {
43
            return true;
44
        }
45
        return openSystemSpecific(uri.toString());
46
    }
47

  
48
    @Override
49
    public boolean open(File file) {
50
        if (openDESKTOP(file)) {
51
            return true;
52
        }
53
        return openSystemSpecific(file.getPath());
54
    }
55

  
56
    @Override
57
    public boolean edit(File file) {
58
        if (editDESKTOP(file)) {
59
            return true;
60
        }
61
        return openSystemSpecific(file.getPath());
62
    }
63

  
64
    private boolean openSystemSpecific(String what) {
65
        EnumOS os = getOs();
66
        if (os.isLinux()) {
67
//            if (runCommand("gnome-open", "%s", what)) {
68
//                return true;
69
//            }
70
//            if (runCommand("kde-open", "%s", what)) {
71
//                return true;
72
//            }
73
            if (runCommand("xdg-open", "%s", what)) {
74
                return true;
75
            }
76
        }
77
        if (os.isMac()) {
78
            if (runCommand(new String[]{"open", what})) {
79
                return true;
80
            }
81
        }
82
        if (os.isWindows()) {
83
            if (runCommand(new String[]{"explorer", what})) {
84
                return true;
85
            }
86
        }
87
        return false;
88
    }
89

  
90
    private boolean browseDESKTOP(URI uri) {
91
        LOGGER.info("Trying to use Desktop.getDesktop().browse() with " + uri.toString());
92
        try {
93
            if (!Desktop.isDesktopSupported()) {
94
                LOGGER.warn("Platform is not supported.");
95
                return false;
96
            }
97
            if (!Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
98
                LOGGER.warn("BROWSE is not supported.");
99
                return false;
100
            }
101
            Desktop.getDesktop().browse(uri);
102
            return true;
103
        } catch (Throwable t) {
104
            if (LOGGER.isDebugEnabled()) {
105
                LOGGER.warn("Error using desktop browse.", t);
106
            } else {
107
                LOGGER.warn("Error using Desktop.getDesktop().browse(). " + t.toString());
108
            }
109
            return false;
110
        }
111
    }
112

  
113
    private boolean openDESKTOP(File file) {
114
        LOGGER.info("Trying to use Desktop.getDesktop().open() with " + file.toString());
115
        try {
116
            if (!Desktop.isDesktopSupported()) {
117
                LOGGER.warn("Platform is not supported.");
118
                return false;
119
            }
120
            if (!Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
121
                LOGGER.warn("OPEN is not supported.");
122
                return false;
123
            }
124
            Desktop.getDesktop().open(file);
125
            return true;
126
        } catch (Throwable t) {
127
            if (LOGGER.isDebugEnabled()) {
128
                LOGGER.warn("Error using desktop open.", t);
129
            } else {
130
                LOGGER.warn("Error using Desktop.getDesktop().open(). " + t.toString());
131
            }
132
            return false;
133
        }
134
    }
135

  
136
    private boolean editDESKTOP(File file) {
137
        LOGGER.info("Trying to use Desktop.getDesktop().edit() with " + file);
138
        try {
139
            if (!Desktop.isDesktopSupported()) {
140
                LOGGER.warn("Platform is not supported.");
141
                return false;
142
            }
143
            if (!Desktop.getDesktop().isSupported(Desktop.Action.EDIT)) {
144
                LOGGER.warn("EDIT is not supported.");
145
                return false;
146
            }
147
            Desktop.getDesktop().edit(file);
148
            return true;
149
        } catch (Throwable t) {
150
            if (LOGGER.isDebugEnabled()) {
151
                LOGGER.warn("Error using desktop edit.", t);
152
            } else {
153
                LOGGER.warn("Error using Desktop.getDesktop().edit(). " + t.toString());
154
            }
155
            return false;
156
        }
157
    }
158

  
159
    private boolean runCommand(String command, String args, String file) {
160
        String[] parts = prepareCommand(command, args, file);
161
        return runCommand(parts);
162
    }
163

  
164
    private boolean runCommand(String[] cmdarray) {
165
//    cmdarray  array containing the command to call and its arguments.
166

  
167
        LOGGER.info("Trying to exec:\n   " + StringUtils.join(cmdarray, ","));
168
        try {
169
            Process p = Runtime.getRuntime().exec(cmdarray);
170
            if (p == null) {
171
                return false;
172
            }
173

  
174
            try {
175
                int retval = p.exitValue();
176
                if (retval == 0) {
177
                    LOGGER.warn("Process ended immediately.");
178
                    return false;
179
                } else {
180
                    LOGGER.warn("Process crashed.");
181
                    return false;
182
                }
183
            } catch (IllegalThreadStateException itse) {
184
                LOGGER.warn("Process is running.");
185
                return true;
186
            }
187
        } catch (IOException e) {
188
            if (LOGGER.isDebugEnabled()) {
189
                LOGGER.warn("Error running command.", e);
190
            } else {
191
                LOGGER.warn("Error running command. " + e.toString());
192
            }
193
            return false;
194
        }
195
    }
196

  
197
    private String[] prepareCommand(String command, String args, String file) {
198
        List<String> parts = new ArrayList<>();
199
        parts.add(command);
200
        if (args != null) {
201
            for (String s : args.split(" ")) {
202
                s = String.format(s, file); // put in the filename thing
203
                parts.add(s.trim());
204
            }
205
        }
206
        return parts.toArray(new String[parts.size()]);
207
    }
208

  
209
    public EnumOS getOs() {
210
        String s = System.getProperty("os.name").toLowerCase();
211
        if (s.contains("win")) {
212
            return EnumOS.windows;
213
        }
214
        if (s.contains("mac")) {
215
            return EnumOS.macos;
216
        }
217
        if (s.contains("solaris")) {
218
            return EnumOS.solaris;
219
        }
220
        if (s.contains("sunos")) {
221
            return EnumOS.solaris;
222
        }
223
        if (s.contains("linux")) {
224
            return EnumOS.linux;
225
        }
226
        if (s.contains("unix")) {
227
            return EnumOS.linux;
228
        } else {
229
            return EnumOS.unknown;
230
        }
231
    }
232
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.361/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/htmlbuilder/impl/DefaultHTMLBuilder.java
1

  
2
package org.gvsig.htmlbuilder.impl;
3

  
4
import java.awt.Color;
5
import java.util.ArrayList;
6
import java.util.Date;
7
import java.util.LinkedHashMap;
8
import java.util.List;
9
import java.util.Map;
10
import org.apache.commons.lang3.StringEscapeUtils;
11
import org.apache.commons.lang3.StringUtils;
12
import org.gvsig.htmlbuilder.HTMLBuilder;
13
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLColor;
14
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLComplexElement;
15
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLElement;
16
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLElementWithAttributes;
17
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLElementWithContents;
18

  
19
/**
20
 *
21
 * @author jjdelcerro
22
 */
23
public class DefaultHTMLBuilder implements HTMLBuilder {
24
    
25
    public class CustomHTMLElement implements HTMLElement {
26

  
27
        private final String text;
28
        
29
        CustomHTMLElement(String text) {
30
            this.text = text;
31
        }
32
        
33
        @Override
34
        public boolean allowContents() {
35
            return false;
36
        }
37
        
38
        @Override
39
        public boolean allowAttributes() {
40
            return false;
41
        }
42

  
43
        @Override
44
        public String toHTML() {
45
            return this.text;
46
        }
47

  
48
        @Override
49
        public String toString() {
50
            return this.toHTML();
51
        }
52
        
53
    }
54

  
55
    public class ContentsHTMLElement implements HTMLElementWithContents {
56
        private final List<HTMLElement>contents;
57
        
58
        public ContentsHTMLElement() {
59
            this.contents = new ArrayList<>();
60
        }
61

  
62
        @Override
63
        public boolean allowContents() {
64
            return true;
65
        }
66

  
67
        @Override
68
        public boolean allowAttributes() {
69
            return false;
70
        }
71

  
72
        @Override
73
        public String toHTML() {
74
            StringBuilder builder = new StringBuilder();
75
            for (HTMLElement content : this.contents) {
76
                builder.append(content.toHTML());
77
            }
78
            return builder.toString();
79
        }
80

  
81
        @Override
82
        public String toString() {
83
            return this.toHTML();
84
        }
85
        
86
        @Override
87
        public HTMLElementWithContents contents(Object... values) {
88
            if( values == null ) {
89
                return this;
90
            }
91
            for (Object value : values) {
92
                if( value == null ) {
93
                    continue;
94
                }
95
                if( value instanceof HTMLElement ) {
96
                    this.contents.add((HTMLElement) value);
97
                } else {
98
                    this.contents.add(custom(value.toString()));
99
                }
100
            }
101
            return this;
102
        }
103
        
104

  
105
        @Override
106
        public List<HTMLElement> getContents() {
107
            return this.contents;
108
        }
109

  
110
    }
111
    
112
    public class DefaultHTMLElement implements HTMLComplexElement {
113

  
114
        private final String name;
115
        private final boolean allowContents;
116
        private final boolean allowAttributes;
117
        private Map<String,String> attributes;
118
        private Map<String,String> style;        
119
        private ContentsHTMLElement contents;
120
        
121
        @SuppressWarnings("OverridableMethodCallInConstructor")
122
        public DefaultHTMLElement(String name, 
123
                boolean allowContents, 
124
                boolean allowAttributes, 
125
                Object... contents
126
            ) {
127
            this.name = name;
128
            this.allowAttributes = allowAttributes;
129
            this.allowContents = allowContents;
130
            this.attributes = null;
131
            this.contents = null;
132
            if( this.allowContents ) {
133
                this.contents(contents);
134
            }
135
        }
136
        
137
        @Override
138
        public Map<String,String> getAttributes() {
139
            if( this.attributes==null ) {
140
                this.attributes = new LinkedHashMap<>();
141
            }
142
            return this.attributes;
143
        }
144
        
145
        @Override
146
        public Map<String,String> getStyle() {
147
            if( this.style==null ) {
148
                this.style = new LinkedHashMap<>();
149
            }
150
            return this.style;
151
        }
152
        
153
        @Override
154
        public List<HTMLElement> getContents() {
155
            if( this.contents==null ) {
156
                this.contents = new ContentsHTMLElement();
157
            }
158
            return this.contents.getContents();
159
        }
160
        
161
        @Override
162
        public HTMLComplexElement set(String name, String value) {
163
            if( !this.allowAttributes()) {
164
                throw new RuntimeException("The element '"+this.name+"' don't allow attributes.");
165
            }
166
            this.getAttributes().put(name, value);
167
            return this;
168
        }
169
        
170
        @Override
171
        public HTMLComplexElement set(String name) {
172
            return set(name, (String)null);
173
        }
174
        
175
        @Override
176
        public HTMLComplexElement set(String name, int value) {
177
            return set(name, String.valueOf(value));
178
        }
179
        
180
        @Override
181
        public HTMLComplexElement set(String name, double value) {
182
            return set(name, String.valueOf(value));
183
        }
184
        
185
        @Override
186
        public HTMLComplexElement set(String name, HTMLColor value) {
187
            return set(name, value.toHTML());
188
        }
189
        
190
        @Override
191
        public HTMLComplexElement style(String name, String value) {
192
            if( !this.allowAttributes()) {
193
                throw new RuntimeException("The element '"+this.name+"' don't allow attributes.");
194
            }
195
            this.getStyle().put(name, value);
196
            return this;
197
        }
198
        
199
        @Override
200
        public HTMLComplexElement style(String name, int value) {
201
            return style(name, String.valueOf(value));
202
        }
203
        
204
        @Override
205
        public HTMLComplexElement style(String name, double value) {
206
            return style(name, String.valueOf(value));
207
        }
208
        
209
        @Override
210
        public HTMLComplexElement style(String name, HTMLColor value) {
211
            return style(name, value.toHTML());
212
        }
213
        
214
        @Override
215
        public HTMLComplexElement contents(Object... values) {
216
            if( values == null ) {
217
                return this;
218
            }
219
            if( !this.allowContents() ) {
220
                throw new RuntimeException("The element '"+this.name+"' don't allow contents.");
221
            }
222
            for (Object value : values) {
223
                if( value == null ) {
224
                    continue;
225
                }
226
                if( value instanceof HTMLElement ) {
227
                    this.getContents().add((HTMLElement) value);
228
                } else {
229
                    this.getContents().add(custom(value.toString()));
230
                }
231
            }
232
            return this;
233
        }
234
        
235
        @Override
236
        public boolean allowContents() {
237
            return this.allowContents;
238
        }
239
        
240
        @Override
241
        public boolean allowAttributes() {
242
            return this.allowAttributes;
243
        }
244
        
245
        @Override
246
        public String toHTML() {
247
            StringBuilder builder = new StringBuilder();
248
            builder.append("<");
249
            builder.append(this.name);
250
            if( this.attributes!=null ) {
251
                for (Map.Entry<String, String> entry : this.attributes.entrySet()) {
252
                    builder.append(" ");
253
                    builder.append(entry.getKey());
254
                    if( entry.getValue()!=null ) {
255
                        builder.append("=\"");
256
                        builder.append(StringEscapeUtils.escapeHtml4(entry.getValue()));
257
                        builder.append("\"");
258
                    }
259
                }
260
            }
261
            if( this.style!=null ) {
262
                builder.append(" style=\"");
263
                for (Map.Entry<String, String> entry : this.style.entrySet()) {
264
                    builder.append(entry.getKey());
265
                    builder.append(":");
266
                    builder.append(StringEscapeUtils.escapeHtml4(entry.getValue()));
267
                    builder.append(" ");
268
                }
269
                builder.append("\"");
270
            }
271
            if( this.contents!=null ) {
272
                builder.append(">\n");
273
                builder.append(this.contents.toHTML());
274
                builder.append("</");
275
                builder.append(this.name);
276
                builder.append(">\n");
277
            } else {
278
                builder.append("/>\n");
279
            }
280
            return builder.toString();
281
        }
282

  
283
        @Override
284
        public String toString() {
285
            return this.toHTML();
286
        }
287
        
288
    }
289
    
290
    public class DefaultHTMLColor implements HTMLColor {
291
        
292
        private String color = "white";
293
        
294
        public DefaultHTMLColor(String color) {
295
            this.color = color;
296
        }
297
        
298
        public DefaultHTMLColor(int r, int g, int b) {
299
            this("rgb("+r+","+g+","+b+")");
300
        }
301
        
302
        public DefaultHTMLColor(Color color) {
303
            this(color.getRed(), color.getGreen(), color.getBlue());
304
        }
305

  
306
        @Override
307
        public boolean allowContents() {
308
            return false;
309
        }
310

  
311
        @Override
312
        public boolean allowAttributes() {
313
            return false;
314
        }
315

  
316
        @Override
317
        public String toHTML() {
318
            return this.color;
319
        }
320

  
321
        @Override
322
        public String toString() {
323
            return this.color;
324
        }
325
        
326
        
327
    }
328
    
329
    @Override
330
    public HTMLElement custom(String value) {
331
        return new CustomHTMLElement(value);
332
    }
333
    
334
    @Override
335
    public HTMLElement plain(String value) {
336
        return new CustomHTMLElement(StringEscapeUtils.escapeHtml4(value));
337
    }
338
    
339
    @Override
340
    public HTMLElement plainWithNl(String value) {
341
        return new CustomHTMLElement(StringEscapeUtils.escapeHtml4(value).replace("\n", "<br>\n"));
342
    }
343
    
344
    @Override
345
    public HTMLElement contents(HTMLElement... values) {
346
        return new ContentsHTMLElement().contents((Object[]) values);
347
    }
348

  
349
    @Override
350
    public HTMLColor color(Color color) {
351
        return new DefaultHTMLColor(color);
352
    }
353
    
354
    @Override
355
    public HTMLColor color(int r, int g, int b) {
356
        return new DefaultHTMLColor(r, g, b);
357
    }
358
    
359
    @Override
360
    public HTMLColor color(String color) {
361
        return new DefaultHTMLColor(color);
362
    }
363

  
364
    @Override
365
    public HTMLComplexElement  a(String link, Object... contents) {
366
        return new DefaultHTMLElement("a", true, true, contents);
367
    }
368
    
369
    @Override
370
    public HTMLComplexElement  a(Object... contents) {
371
        return new DefaultHTMLElement("a", true, true, contents);
372
    }
373
    
374
    @Override
375
    public HTMLComplexElement  abbr(Object... contents) {
376
        return new DefaultHTMLElement("abbr", true, true, contents);
377
    }
378

  
379
    @Override
380
    public HTMLComplexElement  acronym(Object... contents) {
381
        return new DefaultHTMLElement("acronym", true, true, contents);
382
    }
383

  
384
    @Override
385
    public HTMLComplexElement  address(Object... contents) {
386
        return new DefaultHTMLElement("address", true, true, contents);
387
    }
388

  
389
    @Override
390
    public HTMLComplexElement  area(Object... contents) {
391
        return new DefaultHTMLElement("area", true, true, contents);
392
    }
393

  
394
    @Override
395
    public HTMLComplexElement  article(Object... contents) {
396
        return new DefaultHTMLElement("article", true, true, contents);
397
    }
398

  
399
    @Override
400
    public HTMLComplexElement  aside(Object... contents) {
401
        return new DefaultHTMLElement("aside", true, true, contents);
402
    }
403
    
404
    @Override
405
    public HTMLComplexElement  b(Object... contents) {
406
        return new DefaultHTMLElement("b", true, true, contents);
407
    }
408

  
409
    @Override
410
    public HTMLElementWithAttributes  base() {
411
        return new DefaultHTMLElement("base", false, true);
412
    }
413

  
414
    @Override
415
    public HTMLElementWithAttributes  basefont() {
416
        return new DefaultHTMLElement("basefont", false, true);
417
    }
418

  
419
    @Override
420
    public HTMLComplexElement  bdi(Object... contents) {
421
        return new DefaultHTMLElement("bdi", true, true, contents);
422
    }
423

  
424
    @Override
425
    public HTMLComplexElement  bdo(Object... contents) {
426
        return new DefaultHTMLElement("bdo", true, true, contents);
427
    }
428

  
429
    @Deprecated 
430
    @Override
431
    public HTMLElementWithContents  big(Object... contents) {
432
        return new DefaultHTMLElement("big", true, false, contents);
433
    }
434

  
435
    @Override
436
    public HTMLComplexElement  blockquote(Object... contents) {
437
        return new DefaultHTMLElement("blockquote", true, true, contents);
438
    }
439

  
440
    @Override
441
    public HTMLComplexElement  body(Object... contents) {
442
        return new DefaultHTMLElement("body", true, true, contents);
443
    }
444

  
445
    @Override
446
    public HTMLElement  br() {
447
        return new DefaultHTMLElement("br", false, false);
448
    }
449

  
450
    @Override
451
    public HTMLComplexElement  button(Object... contents) {
452
        return new DefaultHTMLElement("button", true, true, contents);
453
    }
454

  
455
    @Override
456
    public HTMLComplexElement  canvas(Object... contents) {
457
        return new DefaultHTMLElement("canvas", true, true, contents);
458
    }
459

  
460
    @Override
461
    public HTMLComplexElement  caption(Object... contents) {
462
        return new DefaultHTMLElement("caption", true, true, contents);
463
    }
464

  
465
    @Override
466
    @Deprecated
467
    public HTMLElementWithContents  center(Object... contents) {
468
        return new DefaultHTMLElement("center", true, false, contents);
469
    }
470

  
471
    @Override
472
    public HTMLComplexElement  cite(Object... contents) {
473
        return new DefaultHTMLElement("cite", true, true, contents);
474
    }
475

  
476
    @Override
477
    public HTMLComplexElement  code(Object... contents) {
478
        return new DefaultHTMLElement("code", true, true, contents);
479
    }
480

  
481
    @Override
482
    public HTMLElementWithAttributes  col() {
483
        return new DefaultHTMLElement("col", false, true);
484
    }
485

  
486
    @Override
487
    public HTMLComplexElement  colgroup(Object... contents) {
488
        return new DefaultHTMLElement("colgroup", true, true, contents);
489
    }
490

  
491
    @Override
492
    public HTMLComplexElement  data(Object... contents) {
493
        return new DefaultHTMLElement("data", true, true, contents);
494
    }
495

  
496
    @Override
497
    public HTMLComplexElement  datalist(Object... contents) {
498
        return new DefaultHTMLElement("datalist", true, true, contents);
499
    }
500

  
501
    @Override
502
    public HTMLComplexElement  dd(Object... contents) {
503
        return new DefaultHTMLElement("dd", true, true, contents);
504
    }
505

  
506
    @Override
507
    public HTMLComplexElement  del(Object... contents) {
508
        return new DefaultHTMLElement("del", true, true, contents);
509
    }
510

  
511
    @Override
512
    public HTMLComplexElement  details(Object... contents) {
513
        return new DefaultHTMLElement("details", true, true, contents);
514
    }
515

  
516
    @Override
517
    public HTMLComplexElement  dfn(Object... contents) {
518
        return new DefaultHTMLElement("dfn", true, true, contents);
519
    }
520

  
521
    @Override
522
    public HTMLComplexElement  dialog(Object... contents) {
523
        return new DefaultHTMLElement("dialog", true, true, contents);
524
    }
525

  
526
    @Override
527
    public HTMLElementWithContents  dir(Object... contents) {
528
        return new DefaultHTMLElement("dir", true, false, contents);
529
    }
530

  
531
    @Override
532
    public HTMLComplexElement  div(Object... contents) {
533
        return new DefaultHTMLElement("div", true, true, contents);
534
    }
535

  
536
    @Override
537
    public HTMLComplexElement  dl(Object... contents) {
538
        return new DefaultHTMLElement("dl", true, true, contents);
539
    }
540

  
541
    @Override
542
    public HTMLComplexElement  dt(Object... contents) {
543
        return new DefaultHTMLElement("dt", true, true, contents);
544
    }
545

  
546
    @Override
547
    public HTMLComplexElement  em(Object... contents) {
548
        return new DefaultHTMLElement("em", true, true, contents);
549
    }
550

  
551
    @Override
552
    public HTMLElementWithAttributes  embed() {
553
        return new DefaultHTMLElement("embed", false, true);
554
    }
555

  
556
    @Override
557
    public HTMLComplexElement  fieldset(Object... contents) {
558
        return new DefaultHTMLElement("fieldset", true, true, contents);
559
    }
560

  
561
    @Override
562
    public HTMLComplexElement  figcaption(Object... contents) {
563
        return new DefaultHTMLElement("figcaption", true, true, contents);
564
    }
565

  
566
    @Override
567
    public HTMLComplexElement figure(Object... contents) {
568
        return new DefaultHTMLElement("figure", true, true, contents);
569
    }
570

  
571
    @Override
572
    public HTMLComplexElement font(Object... contents) {
573
        return new DefaultHTMLElement("font", true, true, contents);
574
    }
575

  
576
    @Override
577
    public HTMLComplexElement font(int size, HTMLColor color) {
578
        return this.font()
579
                .set(HTMLBuilder.size, size)
580
                .set(HTMLBuilder.color, color);
581
    }
582
    
583
    @Override
584
    public HTMLComplexElement font(int size, HTMLColor color, String face, Object... contents) {
585
        return this.font(size, color).set(HTMLBuilder.face, face);
586
    }
587
    
588
    @Override
589
    public HTMLComplexElement  footer(Object... contents) {
590
        return new DefaultHTMLElement("footer", true, true, contents);
591
    }
592

  
593
    @Override
594
    public HTMLComplexElement  form(Object... contents) {
595
        return new DefaultHTMLElement("form", true, true, contents);
596
    }
597
    
598
    @Override
599
    public HTMLComplexElement  frame(Object... contents) {
600
        return new DefaultHTMLElement("frame", true, true, contents);
601
    }
602
    
603
    @Override
604
    public HTMLComplexElement  frameset(Object... contents) {
605
        return new DefaultHTMLElement("frameset", true, true, contents);
606
    }
607
    
608
    @Override
609
    public HTMLComplexElement  h1(Object... contents) {
610
        return new DefaultHTMLElement("h1", true, true, contents);
611
    }
612
    
613
    @Override
614
    public HTMLComplexElement  h2(Object... contents) {
615
        return new DefaultHTMLElement("h2", true, true, contents);
616
    }
617
    
618
    @Override
619
    public HTMLComplexElement  h3(Object... contents) {
620
        return new DefaultHTMLElement("h3", true, true, contents);
621
    }
622
    
623
    @Override
624
    public HTMLComplexElement  h4(Object... contents) {
625
        return new DefaultHTMLElement("h4", true, true, contents);
626
    }
627
    
628
    @Override
629
    public HTMLComplexElement  h5(Object... contents) {
630
        return new DefaultHTMLElement("h5", true, true, contents);
631
    }
632
    
633
    @Override
634
    public HTMLComplexElement  h6(Object... contents) {
635
        return new DefaultHTMLElement("h6", true, true, contents);
636
    }
637
    
638
    @Override
639
    public HTMLComplexElement  head(Object... contents) {
640
        return new DefaultHTMLElement("head", true, true, contents);
641
    }
642
    
643
    @Override
644
    public HTMLComplexElement  header(Object... contents) {
645
        return new DefaultHTMLElement("header", true, true, contents);
646
    }
647
    
648
    @Override
649
    public HTMLComplexElement  hr(Object... contents) {
650
        return new DefaultHTMLElement("hr", true, true, contents);
651
    }
652
    
653
    @Override
654
    public HTMLComplexElement  html(Object... contents) {
655
        return new DefaultHTMLElement("html", true, true, contents);
656
    }
657
    
658
    @Override
659
    public HTMLComplexElement  i(Object... contents) {
660
        return new DefaultHTMLElement("i", true, true, contents);
661
    }
662
    
663
    @Override
664
    public HTMLComplexElement  iframe(Object... contents) {
665
        return new DefaultHTMLElement("iframe", true, true, contents);
666
    }
667
    
668
    @Override
669
    public HTMLElementWithAttributes  img() {
670
        return new DefaultHTMLElement("img", false, true);
671
    }
672
    
673
    @Override
674
    public HTMLElementWithAttributes  input(Object... contents) {
675
        return new DefaultHTMLElement("input", true, true, contents);
676
    }
677
    
678
    @Override
679
    public HTMLComplexElement  ins(Object... contents) {
680
        return new DefaultHTMLElement("ins", true, true, contents);
681
    }
682
    
683
    @Override
684
    public HTMLComplexElement  kbd(Object... contents) {
685
        return new DefaultHTMLElement("kbd", true, true, contents);
686
    }
687
    
688
    @Override
689
    public HTMLComplexElement  label(Object... contents) {
690
        return new DefaultHTMLElement("label", true, true, contents);
691
    }
692
    
693
    @Override
694
    public HTMLComplexElement  legend(Object... contents) {
695
        return new DefaultHTMLElement("legend", true, true, contents);
696
    }
697
    
698
    @Override
699
    public HTMLComplexElement  li(Object... contents) {
700
        return new DefaultHTMLElement("li", true, true, contents);
701
    }
702
    
703
    @Override
704
    public HTMLElementWithAttributes link() {
705
        return new DefaultHTMLElement("ins", false, true);
706
    }
707
    
708
    @Override
709
    public HTMLElementWithAttributes link(String rel, String type, String href) {
710
        return link()
711
                .set(HTMLBuilder.rel, rel)
712
                .set(HTMLBuilder.type, type)
713
                .set(HTMLBuilder.href, href);
714
    }
715
    
716
    @Override
717
    public HTMLComplexElement  main(Object... contents) {
718
        return new DefaultHTMLElement("main", true, true, contents);
719
    }
720
    
721
    @Override
722
    public HTMLComplexElement  map(Object... contents) {
723
        return new DefaultHTMLElement("map", true, true, contents);
724
    }
725
    
726
    @Override
727
    public HTMLComplexElement  mark(Object... contents) {
728
        return new DefaultHTMLElement("mark", true, true, contents);
729
    }
730
    
731
    @Override
732
    public HTMLElementWithAttributes  meta() {
733
        return new DefaultHTMLElement("meta", false, true);
734
    }
735
    
736
    @Override
737
    public HTMLElementWithAttributes  meta(String charset) {
738
        return mark().set(HTMLBuilder.charset, charset);
739
    }
740
    
741
    @Override
742
    public HTMLElementWithAttributes  meta(String name, String content) {
743
        return mark()
744
                .set(HTMLBuilder.name, name)
745
                .set(HTMLBuilder.content, content);
746
    }
747
    
748
    @Override
749
    public HTMLComplexElement  meter(Object... contents) {
750
        return new DefaultHTMLElement("meter", true, true, contents);
751
    }
752
    
753
    @Override
754
    public HTMLComplexElement  nav(Object... contents) {
755
        return new DefaultHTMLElement("nav", true, true, contents);
756
    }
757
    
758
    @Override
759
    public HTMLElementWithContents  noframes(Object... contents) {
760
        return new DefaultHTMLElement("noframes", true, false, contents);
761
    }
762
    
763
    @Override
764
    public HTMLElementWithContents  noscript(Object... contents) {
765
        return new DefaultHTMLElement("noscript", true, false, contents);
766
    }
767
    
768
    @Override
769
    public HTMLComplexElement  object(Object... contents) {
770
        return new DefaultHTMLElement("object", true, true, contents);
771
    }
772
    
773
    @Override
774
    public HTMLComplexElement  ol(Object... contents) {
775
        return new DefaultHTMLElement("ol", true, true, contents);
776
    }
777
    
778
    @Override
779
    public HTMLComplexElement  optgroup(Object... contents) {
780
        return new DefaultHTMLElement("optgroup", true, true, contents);
781
    }
782
    
783
    @Override
784
    public HTMLComplexElement  option(Object... contents) {
785
        return new DefaultHTMLElement("option", true, true, contents);
786
    }
787
    
788
    @Override
789
    public HTMLComplexElement  output(Object... contents) {
790
        return new DefaultHTMLElement("output", true, true, contents);
791
    }
792
    
793
    @Override
794
    public HTMLComplexElement  p(Object... contents) {
795
        return new DefaultHTMLElement("p", true, true, contents);
796
    }
797
    
798
    @Override
799
    public HTMLElementWithAttributes  param() {
800
        return new DefaultHTMLElement("param", false, true);
801
    }
802
    
803
    @Override
804
    public HTMLComplexElement  pre(Object... contents) {
805
        return new DefaultHTMLElement("pre", true, true, contents);
806
    }
807
    
808
    @Override
809
    public HTMLComplexElement  progress(Object... contents) {
810
        return new DefaultHTMLElement("progress", true, true, contents);
811
    }
812
    
813
    @Override
814
    public HTMLComplexElement  q(Object... contents) {
815
        return new DefaultHTMLElement("q", true, true, contents);
816
    }
817
    
818
    @Override
819
    public HTMLComplexElement  rp(Object... contents) {
820
        return new DefaultHTMLElement("rp", true, true, contents);
821
    }
822
    
823
    @Override
824
    public HTMLComplexElement  rt(Object... contents) {
825
        return new DefaultHTMLElement("rt", true, true, contents);
826
    }
827
    
828
    @Override
829
    public HTMLComplexElement  ruby(Object... contents) {
830
        return new DefaultHTMLElement("ruby", true, true, contents);
831
    }
832
    
833
    @Override
834
    public HTMLComplexElement  s(Object... contents) {
835
        return new DefaultHTMLElement("s", true, true, contents);
836
    }
837
    
838
    @Override
839
    public HTMLComplexElement  samp(Object... contents) {
840
        return new DefaultHTMLElement("samp", true, true, contents);
841
    }
842
    
843
    @Override
844
    public HTMLComplexElement  script(Object... contents) {
845
        return new DefaultHTMLElement("script", true, true, contents);
846
    }
847
        
848
    @Override
849
    public HTMLComplexElement  section(Object... contents) {
850
        return new DefaultHTMLElement("section", true, true, contents);
851
    }
852
    
853
    @Override
854
    public HTMLComplexElement  select(Object... contents) {
855
        return new DefaultHTMLElement("select", true, true, contents);
856
    }
857
    
858
    @Override
859
    public HTMLComplexElement  small(Object... contents) {
860
        return new DefaultHTMLElement("small", true, true, contents);
861
    }
862
    
863
    @Override
864
    public HTMLComplexElement  source(Object... contents) {
865
        return new DefaultHTMLElement("source", true, true, contents);
866
    }
867
    
868
    @Override
869
    public HTMLComplexElement  span(Object... contents) {
870
        return new DefaultHTMLElement("span", true, true, contents);
871
    }
872

  
873
    @Override
874
    public HTMLElementWithContents  strike(Object... contents) {
875
        return new DefaultHTMLElement("strike", true, false);
876
    }
877
    
878
    @Override
879
    public HTMLComplexElement  strong(Object... contents) {
880
        return new DefaultHTMLElement("strong", true, true, contents);
881
    }
882
    
883
    @Override
884
    public HTMLComplexElement  style(Object... contents) {
885
        return new DefaultHTMLElement("style", true, true, contents);
886
    }
887
    
888
    @Override
889
    public HTMLComplexElement  sub(Object... contents) {
890
        return new DefaultHTMLElement("sub", true, true, contents);
891
    }
892
    
893
    @Override
894
    public HTMLComplexElement  summary(Object... contents) {
895
        return new DefaultHTMLElement("summary", true, true, contents);
896
    }
897
    
898
    @Override
899
    public HTMLComplexElement  sup(Object... contents) {
900
        return new DefaultHTMLElement("sup", true, true, contents);
901
    }
902
    
903
    @Override
904
    public HTMLComplexElement  svg(Object... contents) {
905
        return new DefaultHTMLElement("svg", true, true, contents);
906
    }
907
    
908
    @Override
909
    public HTMLComplexElement  table(Object... contents) {
910
        return new DefaultHTMLElement("table", true, true, contents);
911
    }
912
    
913
    @Override
914
    public HTMLComplexElement  table(int border, int cellpadding, int cellspacing) {
915
        return table()
916
                .set(HTMLBuilder.border, border)
917
                .set(HTMLBuilder.cellpadding, cellpadding)
918
                .set(HTMLBuilder.cellspacing, cellspacing);
919
    }
920
    
921
    @Override
922
    public HTMLComplexElement  table(int border, int cellpadding, int cellspacing, int widthpercent) {
923
        return table(border, cellpadding, cellspacing)
924
                .set(HTMLBuilder.width, String.valueOf(widthpercent)+"%");
925
    }
926
    
927
    @Override
928
    public HTMLComplexElement  tbody(Object... contents) {
929
        return new DefaultHTMLElement("tbody", true, true, contents);
930
    }
931
    
932
    @Override
933
    public HTMLComplexElement  td(Object... contents) {
934
        return new DefaultHTMLElement("td", true, true, contents);
935
    }
936
    
937
    @Override
938
    public HTMLComplexElement  td(boolean wrap, int colspan) {
939
        return td(wrap,colspan, null);
940
    }
941
    
942
    @Override
943
    public HTMLComplexElement  td(boolean wrap, int colspan, String valign) {
944
        HTMLComplexElement x = td();
945
        if( !wrap ) {
946
            x.set(HTMLBuilder.nowrap);
947
        }
948
        if( colspan>1 ) {
949
            x.set(HTMLBuilder.colspan, colspan);
950
        }
951
        if( !StringUtils.isEmpty(valign) ) {
952
            x.set(HTMLBuilder.valign, valign);
953
        } 
954
        return x;
955
    }
956
    
957
    @Override
958
    public HTMLComplexElement  template(Object... contents) {
959
        return new DefaultHTMLElement("template", true, true, contents);
960
    }
961
    
962
    @Override
963
    public HTMLComplexElement  textarea(Object... contents) {
964
        return new DefaultHTMLElement("textarea", true, true, contents);
965
    }
966
    
967
    @Override
968
    public HTMLComplexElement  textarea(int rows, int cols) {
969
        return textarea()
970
                .set(HTMLBuilder.rows, rows)
971
                .set(HTMLBuilder.cols, cols)
972
                ;
973
    }
974

  
975
    @Override
976
    public HTMLComplexElement  textarea(int rows, int cols, int maxlength) {
977
        return textarea(rows, cols)
978
                .set(HTMLBuilder.maxlength, maxlength)
979
                ;
980
    }
981
    
982
    @Override
983
    public HTMLComplexElement  tfoot(Object... contents) {
984
        return new DefaultHTMLElement("tfoot", true, true, contents);
985
    }
986
    
987
    @Override
988
    public HTMLComplexElement  th(Object... contents) {
989
        return new DefaultHTMLElement("th", true, true, contents);
990
    }
991
    
992
    @Override
993
    public HTMLComplexElement  thead(Object... contents) {
994
        return new DefaultHTMLElement("thead", true, true, contents);
995
    }
996
    
997
    @Override
998
    public HTMLComplexElement  time(Object... contents) {
999
        return new DefaultHTMLElement("time", true, true, contents);
1000
    }
1001
    
1002
    @Override
1003
    public HTMLComplexElement  time(String datetime) {
1004
        return time().set(HTMLBuilder.datetime, datetime);
1005
    }
1006
    
1007
    @Override
1008
    public HTMLComplexElement  time(Date datetime) {
1009
        return time().set(HTMLBuilder.datetime,
1010
                datetime.getYear() + "-" + datetime.getMonth() +"-" + datetime.getDay() + " " + 
1011
                datetime.getHours() +":"+ datetime.getMinutes()
1012
        );
1013
    }
1014
    
1015
    @Override
1016
    public HTMLComplexElement  title(Object... contents) {
1017
        return new DefaultHTMLElement("title", true, true, contents);
1018
    }
1019
    
1020
    @Override
1021
    public HTMLComplexElement  tr(Object... contents) {
1022
        return new DefaultHTMLElement("tr", true, true, contents);
1023
    }
1024

  
1025
    @Override
1026
    public HTMLComplexElement  tr(String valign) {
1027
        return tr().set(HTMLBuilder.valign, valign);
1028
    }
1029
    
1030
    @Override
1031
    public HTMLComplexElement  tr(HTMLColor color){
1032
        return tr().set(HTMLBuilder.bgcolor, color);
1033
    }
1034

  
1035
    @Override
1036
    public HTMLComplexElement  tr(String valign, HTMLColor color) {
1037
        return tr(color).set(HTMLBuilder.valign, valign);
1038
    }
1039
    
1040
    @Override
1041
    public HTMLComplexElement  track(Object... contents) {
1042
        return new DefaultHTMLElement("track", true, true, contents);
1043
    }
1044
    
1045
    @Override
1046
    public HTMLElementWithContents  tt(Object... contents) {
1047
        return new DefaultHTMLElement("tt", true, false, contents);
1048
    }
1049
    
1050
    @Override
1051
    public HTMLComplexElement  u(Object... contents) {
1052
        return new DefaultHTMLElement("u", true, true, contents);
1053
    }
1054
    
1055
    @Override
1056
    public HTMLComplexElement  ul(Object... contents) {
1057
        return new DefaultHTMLElement("ul", true, true, contents);
1058
    }
1059
    
1060
    @Override
1061
    public HTMLComplexElement  var(Object... contents) {
1062
        return new DefaultHTMLElement("var", true, true, contents);
1063
    }
1064
    
1065
    @Override
1066
    public HTMLComplexElement  video(Object... contents) {
1067
        return new DefaultHTMLElement("video", true, true, contents);
1068
    }
1069
    
1070
    @Override
1071
    public HTMLComplexElement  wbr(Object... contents) {
1072
        return new DefaultHTMLElement("wbr", true, true, contents);
1073
    }
1074
    
1075
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.361/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/svgsupport/DumbSVGRenderer.java
1

  
2
package org.gvsig.svgsupport;
3

  
4
import java.awt.Graphics2D;
5
import java.awt.geom.Rectangle2D;
6
import java.io.File;
7
import java.io.IOException;
8
import java.net.URISyntaxException;
9
import java.net.URL;
10

  
11

  
12
public class DumbSVGRenderer implements SVGRenderer {
13

  
14
    private URL source;
15

  
16
    @Override
17
    public void drawInsideRectangle(Graphics2D g, Rectangle2D rect, boolean keepAspectRatio) {
18

  
19
    }
20

  
21
    @Override
22
    public Rectangle2D getBounds() {
23
        return new Rectangle2D.Float(0, 0, 1, 1);
24
    }
25

  
26
    @Override
27
    public URL getSource() {
28
        return source;
29
    }
30

  
31
    @Override
32
    public void setSource(URL url) throws IOException {
33
        this.source = url;
34
    }
35

  
36
    @Override
37
    public void setSource(File f) throws IOException {
38
        try {
39
            this.source = source.toURI().toURL();
40
        } catch (URISyntaxException ex) {
41

  
42
        }
43
    }
44
    
45
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.361/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/svgsupport/DumbSVGSupportManager.java
1

  
2
package org.gvsig.svgsupport;
3

  
4
import java.io.File;
5
import java.io.IOException;
6
import java.net.URL;
7

  
8

  
9
public class DumbSVGSupportManager implements SVGSupportManager {
10

  
11
    @Override
12
    public SVGRenderer createRenderer() {
13
        return new DumbSVGRenderer();
14
    }
15

  
16
    @Override
17
    public SVGRenderer createRenderer(URL source) throws IOException {
18
        SVGRenderer renderer = new DumbSVGRenderer();
19
        renderer.setSource(source);
20
        return renderer;
21
    }
22

  
23
    @Override
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff