Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / extension / logviewer / LogViewer.java @ 42621

History | View | Annotate | Download (2.72 KB)

1

    
2
package org.gvsig.app.extension.logviewer;
3

    
4
import java.awt.Dimension;
5
import java.awt.event.ActionEvent;
6
import java.awt.event.ActionListener;
7
import java.io.File;
8
import java.io.IOException;
9
import org.apache.commons.io.FileUtils;
10
import org.gvsig.andami.PluginsLocator;
11
import org.gvsig.andami.PluginsManager;
12
import org.gvsig.tools.ToolsLocator;
13
import org.gvsig.tools.i18n.I18nManager;
14
import org.slf4j.LoggerFactory;
15

    
16

    
17
public class LogViewer extends LogViewerView {
18
    
19
    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(LogViewer.class);
20
    
21
    private final File logfile;
22
    
23
    
24
    public LogViewer() {
25
        PluginsManager pluginsManager = PluginsLocator.getManager();
26
        this.logfile = FileUtils.getFile(
27
                pluginsManager.getApplicationHomeFolder(), 
28
                pluginsManager.getApplicationName() + ".log"
29
        );
30
        this.initComponents();
31
    }
32
    
33
    private void initComponents() {
34
        
35
        this.translateComponents();
36
        
37
        this.btnClose.addActionListener(new ActionListener() {
38

    
39
            @Override
40
            public void actionPerformed(ActionEvent ae) {
41
                doClose();
42
            }
43
        });
44
        this.btnUpdate.addActionListener(new ActionListener() {
45

    
46
            @Override
47
            public void actionPerformed(ActionEvent ae) {
48
                doUpdate();
49
            }
50
        });
51
        
52
        String s = this.logfile.getAbsolutePath();
53
        this.txtFilename.setText(s);
54
        this.txtFilename.setSelectionStart(s.length());
55
        this.txtFilename.setSelectionEnd(s.length());
56
        
57
        doUpdate();
58
    }
59

    
60
    @Override
61
    public Dimension getPreferredSize() {
62
        Dimension preferredSize = super.getPreferredSize();
63
        preferredSize.width = Math.max(preferredSize.width, 400);
64
        preferredSize.height = Math.max(preferredSize.height, 300);
65
        return preferredSize;
66
    }
67
    
68
    
69
    private void translateComponents() {
70
        I18nManager i18nManager = ToolsLocator.getI18nManager();
71
        
72
        this.btnClose.setText(i18nManager.getTranslation("_Close"));
73
        this.btnUpdate.setText(i18nManager.getTranslation("_Update"));
74
    }
75
    
76
    public void doClose() {
77
        this.setVisible(false);
78
    }
79
    
80
    public void doUpdate() {
81
        try {
82
            String s = FileUtils.readFileToString(logfile);
83
            this.txtLogContents.setText(s);
84
            this.txtLogContents.setSelectionStart(s.length());
85
            this.txtLogContents.setSelectionEnd(s.length());
86
        } catch (IOException ex) {
87
            logger.warn("Can't load log file '"+this.logfile.getAbsolutePath()+"'.",ex);
88
            this.txtLogContents.setText("Can't load log file\n\n"+ex.toString());
89
        }
90
    }
91
}