@@ -58,6 +58,7 @@ public class LayerListPanel extends JPanel {
5858 private LayerStylePanel lyrStylePanel ;
5959 List <LayerItemPanel > layerItems = new ArrayList <LayerItemPanel >();
6060
61+ private JButton btnAdd ;
6162 private JButton btnCopy ;
6263 private JButton btnInspect ;
6364 private JButton btnUp ;
@@ -98,14 +99,23 @@ private void uiInit() throws Exception {
9899 panelLeft .add (scrollPane1 , BorderLayout .CENTER );
99100 panelLeft .add (buttonPanel , BorderLayout .EAST );
100101
101- btnCopy = SwingUtil .createButton (AppIcons .ADD ,
102- "Copy layer to a new layer" ,
102+ btnAdd = SwingUtil .createButton (AppIcons .ADD ,
103+ "Duplicate layer to a new layer" ,
104+ new ActionListener () {
105+ public void actionPerformed (ActionEvent e ) {
106+ layerAdd ();
107+ }
108+ });
109+ buttonPanel .add (btnAdd );
110+
111+ btnCopy = SwingUtil .createButton (AppIcons .COPY ,
112+ "Copy layer geometry" ,
103113 new ActionListener () {
104114 public void actionPerformed (ActionEvent e ) {
105115 layerCopy ();
106116 }
107117 });
108- buttonPanel .add (btnCopy );
118+ buttonPanel .add (btnAdd );
109119
110120 btnZoom = SwingUtil .createButton (AppIcons .ZOOM ,
111121 "Zoom to layer" ,
@@ -124,7 +134,7 @@ public void actionPerformed(ActionEvent e) {
124134 }
125135 });
126136 buttonPanel .add (btnInspect );
127-
137+
128138 btnPaste = SwingUtil .createButton (AppIcons .PASTE ,
129139 "Paste geometry into layer" ,
130140 new ActionListener () {
@@ -133,6 +143,16 @@ public void actionPerformed(ActionEvent e) {
133143 }
134144 });
135145 buttonPanel .add (btnPaste );
146+
147+ btnCopy = SwingUtil .createButton (AppIcons .COPY ,
148+ "Copy layer geometry" ,
149+ new ActionListener () {
150+ public void actionPerformed (ActionEvent e ) {
151+ layerCopy ();
152+ }
153+ });
154+ buttonPanel .add (btnCopy );
155+
136156 btnUp = SwingUtil .createButton (AppIcons .UP ,
137157 "Move layer up" ,
138158 new ActionListener () {
@@ -234,22 +254,27 @@ public void setLayerFocus(LayerItemPanel layerItem) {
234254 private void updateButtons (Layer lyr ) {
235255 boolean isModifiable = lyr .isModifiable ();
236256
237- // every layer is copyable
238- btnCopy .setEnabled (true );
257+ // every layer can be duplicated
258+ btnAdd .setEnabled (true );
239259 btnPaste .setEnabled (isModifiable && ! lyr .hasGeometry ());
260+ btnCopy .setEnabled (lyr .hasGeometry ());
240261 btnZoom .setEnabled (lyr .hasGeometry ());
241262 btnUp .setEnabled (isModifiable );
242263 btnDown .setEnabled (isModifiable );
243264 btnDelete .setEnabled (isModifiable );
244265 }
245266
246- private void layerCopy () {
267+ private void layerAdd () {
247268 Layer copy = JTSTestBuilder .model ().layerCopy (focusLayer );
248269 populateList ();
249270 setLayerFocus (findLayerItem (copy ));
250271 JTSTestBuilder .controller ().geometryViewChanged ();
251272 }
252273
274+ private void layerCopy () {
275+ SwingUtil .copyToClipboard (focusLayer .getGeometry (), false );
276+ }
277+
253278 private void layerInspect () {
254279 JTSTestBuilder .controller ().inspectGeometry (focusLayer .getName (), focusLayer .getGeometry ());
255280 }
0 commit comments