Revision 1286

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformset/subform/FormSetButtonBar.java
23 23
 */
24 24
package org.gvsig.tools.dynform.services.dynformset.subform;
25 25

  
26
import com.sun.java.swing.plaf.motif.MotifBorders;
27

  
28
import java.awt.Color;
29 26
import java.awt.Cursor;
30 27
import java.awt.Dimension;
31 28
import java.awt.FlowLayout;
32 29
import java.awt.event.MouseAdapter;
33 30
import java.awt.event.MouseEvent;
34 31
import java.net.URL;
32
import java.util.ArrayList;
35 33
import java.util.HashSet;
36 34
import java.util.Iterator;
35
import java.util.List;
37 36
import java.util.Set;
37
import javax.swing.Action;
38
import javax.swing.BorderFactory;
38 39

  
39
import javax.swing.BorderFactory;
40 40
import javax.swing.Icon;
41 41
import javax.swing.ImageIcon;
42
import javax.swing.JButton;
42 43
import javax.swing.JComponent;
43 44
import javax.swing.JLabel;
44 45
import javax.swing.JPanel;
45 46
import javax.swing.SwingConstants;
46
import javax.swing.border.BevelBorder;
47 47

  
48 48
import org.gvsig.tools.ToolsLocator;
49 49
import org.gvsig.tools.i18n.I18nManager;
......
90 90
	private Set listeners = null;
91 91
	private int current = 0;
92 92
	private int numrecords = 0;
93

  
93
        
94
        private JPanel othersButtons;
95
        private List<Action> otherActions;
96
        
94 97
	private boolean readOnly = false;
95 98

  
96 99

  
......
104 107
			this.activatedActions[i]=true;
105 108
		}
106 109
		this.listeners = new HashSet();
110
                this.otherActions = new ArrayList<>();
107 111
	}
108 112

  
109 113
	public JComponent asJComponent() {
......
231 235
	}
232 236

  
233 237
	private void initComponents() {
234
		I18nManager i18nManager = ToolsLocator.getI18nManager();
235 238
		this.contents = new JPanel();
236
                //this.contents.setBorder(BorderFactory.createLineBorder(Color.GRAY));
237 239
		this.contents.setLayout( new FlowLayout(FlowLayout.LEADING, 4,4));
238
		//		this.contents.setBorder( BorderFactory.createLineBorder(Color.GRAY, 1));
240
                
241
                this.contents.add(getStandardButtonBar());
242
                
243
                this.othersButtons = new JPanel();
244
		this.othersButtons.setLayout( new FlowLayout(FlowLayout.LEADING, 4,4));
245
                this.contents.add(this.othersButtons);
239 246

  
247
                for( Action action : this.otherActions ) {
248
                    this.othersButtons.add(new JButton(action));
249
                }
250
                
251
		this.contents.add(createButton("Close", "close.png", ActionClose));
252
		this.initButtons();
253
		this.updateRecords();
254
	}
255
        
256
        private JPanel getStandardButtonBar() {
257
		I18nManager i18nManager = ToolsLocator.getI18nManager();
258
		JPanel contents = new JPanel();
259
		contents.setLayout( new FlowLayout(FlowLayout.LEADING, 4,4));
260

  
240 261
		JComponent firstButton = createButton(i18nManager.getTranslation("_first"), "first.png", ActionFirst);
241
		this.contents.add(firstButton);
242
		this.contents.add(createButton(i18nManager.getTranslation("_back"), "previous.png", ActionPrevious));
262
		contents.add(firstButton);
263
		contents.add(createButton(i18nManager.getTranslation("_back"), "previous.png", ActionPrevious));
243 264

  
244 265
		this.records = new JLabel();
245 266
                int height = this.records.getFont().getSize();
......
248 269
                }
249 270
		this.records.setPreferredSize(new Dimension(COUNTER_WIDTH, height));
250 271
		this.records.setHorizontalAlignment( SwingConstants.CENTER ); 
251
                //this.records.setBorder(BorderFactory.createLineBorder(Color.WHITE));
252
		this.contents.add(this.records);
272
		contents.add(this.records);
253 273

  
254
		this.contents.add(createButton(i18nManager.getTranslation("_next"), "next.png", ActionNext));
255
		this.contents.add(createButton(i18nManager.getTranslation("_last"), "last.png", ActionLast));
274
		contents.add(createButton(i18nManager.getTranslation("_next"), "next.png", ActionNext));
275
		contents.add(createButton(i18nManager.getTranslation("_last"), "last.png", ActionLast));
256 276

  
257
		this.contents.add(createButton(i18nManager.getTranslation("guardar"), "save.png", ActionSave));
258
		this.contents.add(createButton(i18nManager.getTranslation("nuevo"), "new.png", ActionNew));
259
		this.contents.add(createButton(i18nManager.getTranslation("borrar"), "delete.png", ActionDelete));
260
		this.contents.add(createButton(i18nManager.getTranslation("search"), "search.png", ActionSearch));
277
		contents.add(createButton(i18nManager.getTranslation("guardar"), "save.png", ActionSave));
278
		contents.add(createButton(i18nManager.getTranslation("nuevo"), "new.png", ActionNew));
279
		contents.add(createButton(i18nManager.getTranslation("borrar"), "delete.png", ActionDelete));
280
		contents.add(createButton(i18nManager.getTranslation("search"), "search.png", ActionSearch));
281
                
282
                return contents;
283
        }
261 284

  
262
		this.contents.add(createButton("Close", "close.png", ActionClose));
263
		this.initButtons();
264
		this.updateRecords();
265
	}
266

  
267 285
	private void initButtons() {
268 286
		setActionActive(ActionSave, isActionActive(ActionSave));
269 287
		setActionActive(ActionNew, isActionActive(ActionNew));
......
339 357
			}
340 358
		}
341 359
	}
360
        
361
        public void addAction(Action action) {
362
            this.otherActions.add(action);
363
            if( this.contents == null ) {
364
                return;
365
            }
366
            JButton button = new JButton(action);
367
            button.setBorder(BorderFactory.createEmptyBorder());
368
            this.othersButtons.add(button);
369
        }
342 370

  
343 371
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformset/subform/SubformJDynFormSet.java
29 29
import java.util.ArrayList;
30 30
import java.util.Iterator;
31 31
import java.util.List;
32
import java.util.logging.Level;
32
import javax.swing.Action;
33 33
import javax.swing.BorderFactory;
34 34

  
35 35
import javax.swing.JComponent;
......
292 292
        if (this.values.isEmpty()) {
293 293
            return false;
294 294
        }
295
// Ahora mismo siempre devuelve false, asi que de momento
296
// lo quito hasta que se corrija esto.
297
//
298
//        if (!this.form.isModified()) {
299
//            return true;
300
//        }
295
        if (!this.form.isModified()) {
296
            return true;
297
        }
301 298
        try {
302 299
            this.listeners.accept(new Visitor() {
303 300
                public void visit(Object listener) throws VisitCanceledException, BaseException {
......
442 439
        try {
443 440
            this.listeners.accept(new Visitor() {
444 441
                public void visit(Object listener) throws VisitCanceledException, BaseException {
445
                    ((JDynFormSetListener) listener).formBeforeSearch(SubformJDynFormSet.this);
442
                    ((JDynFormSetListener) listener).formAfterSearch(SubformJDynFormSet.this);
446 443
                }
447 444
            });
448 445
        } catch (BaseException e) {
......
513 510
    public void getFormValues(DynObject values) {
514 511
        this.form.getValues(values);
515 512
    }
513

  
514
    @Override
515
    public void addAction(Action action) {
516
        try {
517
            this.getButtonBar().addAction(action);
518
        } catch (ServiceException ex) {
519
            throw new RuntimeException("Can't add action to JDymFormSet", ex);
520
        }
521
    }
516 522
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformset/simpletable/SimpleTableJDynFormSet.java
36 36
import java.util.Comparator;
37 37
import java.util.Iterator;
38 38
import java.util.List;
39
import javax.swing.Action;
39 40

  
40 41
import javax.swing.Icon;
41 42
import javax.swing.ImageIcon;
......
190 191
		this.tableModel = new DynObjectListTableModel(this.values, this.definition.getElementsType());
191 192
		table.setModel(tableModel);
192 193
    }
194

  
195
    @Override
196
    public void addAction(Action action) {
197
        logger.info("AddAction not implemented over SimpleTableJDynFormSet.");
198
    }
193 199
    
194 200
    public static class DynObjectListTableModel implements TableModel{
195 201
    	
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.api/src/main/java/org/gvsig/tools/dynform/JDynFormSet.java
97 97
	public int countValues();
98 98
	public void setCurrentIndex(int index);
99 99

  
100
        public void addAction(Action action);
100 101
	public void addActionToPopupMenu(DataType tipo, String name, Action action);
101 102
	public void addSeparatorToPopupMenu(DataType tipo);
102 103

  

Also available in: Unified diff