source: josm/trunk/src/org/openstreetmap/josm/gui/layer/AbstractModifiableLayer.java@ 13674

Last change on this file since 13674 was 13453, checked in by Don-vip, 6 years ago

fix #8039, fix #10456: final fixes for the read-only/locked layers:

  • rename "read-only" to "locked" (in XML and Java classes/interfaces)
  • add a new download policy (true/never) to allow private layers forbidding only to download data, but allowing everything else

This leads to:

  • normal layers: download allowed, modifications allowed, upload allowed
  • private layers: download allowed or not (download=true/never), modifications allowed, upload allowed or not (upload=true/discouraged/never)
  • locked layers: nothing allowed, the data cannot be modified in any way
  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.layer;
3
4import org.openstreetmap.josm.data.osm.Lockable;
5import org.openstreetmap.josm.gui.io.AbstractIOTask;
6import org.openstreetmap.josm.gui.io.AbstractUploadDialog;
7import org.openstreetmap.josm.gui.progress.ProgressMonitor;
8
9/**
10 * A modifiable layer.
11 * @since 7358
12 */
13public abstract class AbstractModifiableLayer extends Layer implements DownloadFromServer, UploadToServer, SaveToFile, Lockable {
14
15 /**
16 * Constructs a new {@code ModifiableLayer}.
17 * @param name Layer name
18 */
19 public AbstractModifiableLayer(String name) {
20 super(name);
21 }
22
23 @Override
24 public boolean isDownloadable() {
25 // Override if needed
26 return false;
27 }
28
29 @Override
30 public boolean isUploadable() {
31 // Override if needed
32 return false;
33 }
34
35 @Override
36 public boolean requiresUploadToServer() {
37 // Override if needed
38 return false;
39 }
40
41 @Override
42 public boolean requiresSaveToFile() {
43 // Override if needed
44 return false;
45 }
46
47 @Override
48 public boolean isUploadDiscouraged() {
49 // Override if needed
50 return false;
51 }
52
53 /**
54 * Determines if data managed by this layer has been modified.
55 * @return true if data has been modified; false, otherwise
56 */
57 public abstract boolean isModified();
58
59 @Override
60 public void onPostSaveToFile() {
61 // Override if needed
62 }
63
64 /**
65 * Initializes the layer after a successful upload to the server.
66 */
67 @Override
68 public void onPostUploadToServer() {
69 // Override if needed
70 }
71
72 @Override
73 public AbstractIOTask createUploadTask(ProgressMonitor monitor) {
74 // Override if needed
75 return null;
76 }
77
78 @Override
79 public AbstractUploadDialog getUploadDialog() {
80 // Override if needed
81 return null;
82 }
83
84 @Override
85 public boolean isUploadInProgress() {
86 // Override if needed
87 return false;
88 }
89
90 @Override
91 public void lock() {
92 // Override if needed
93 }
94
95 @Override
96 public void unlock() {
97 // Override if needed
98 }
99
100 @Override
101 public boolean isLocked() {
102 // Override if needed
103 return false;
104 }
105}
Note: See TracBrowser for help on using the repository browser.