Newer
Older
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cz.fidentis.analyst.gui;
import org.netbeans.api.settings.ConvertAsProperties;
import org.openide.awt.ActionID;
import org.openide.awt.ActionReference;
import org.openide.windows.TopComponent;
import org.openide.util.NbBundle.Messages;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import javax.swing.JOptionPane;
*
* @author Richard Pajerský
*
* Window with basic Preferences
*/
@ConvertAsProperties(
dtd = "-//cz.fidentis.analyst.gui//Preferences//EN",
autostore = false
)
@TopComponent.Description(
preferredID = "PreferencesTopComponent",
//iconBase="SET/PATH/TO/ICON/HERE",
persistenceType = TopComponent.PERSISTENCE_ALWAYS
)
@TopComponent.Registration(mode = "properties", openAtStartup = false)
@ActionID(category = "Window", id = "cz.fidentis.analyst.gui.PreferencesTopComponent")
@ActionReference(path = "Menu/Tools", position = 2600, separatorBefore = 2550 /*, position = 333 */)
@TopComponent.OpenActionRegistration(
displayName = "#CTL_PreferencesAction",
preferredID = "PreferencesTopComponent"
)
@Messages({
"CTL_PreferencesAction=Preferences",
"CTL_PreferencesTopComponent=Preferences Window",
"HINT_PreferencesTopComponent=This is a Preferences window"
})
public final class PreferencesTopComponent extends TopComponent {
public PreferencesTopComponent() {
initComponents();
setName(Bundle.CTL_PreferencesTopComponent());
setToolTipText(Bundle.HINT_PreferencesTopComponent());
putClientProperty(TopComponent.PROP_KEEP_PREFERRED_SIZE_WHEN_SLIDED_IN, Boolean.TRUE);
createPreferencesFile();
}
private void createPreferencesFile() {
//testing preferences fodler
//String propPath = System.getProperty("user.home") + "/preferences";
try {
File myObj = new File(/*propPath + */"preferences.fip");
if (myObj.createNewFile()) {
JOptionPane.showConfirmDialog(null, "File created: " + myObj.getName());
} else {
JOptionPane.showConfirmDialog(null, "File already exists." + myObj.getName());
}
} catch (IOException e) {
JOptionPane.showConfirmDialog(null, "An error occurred.");
e.printStackTrace();
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jFormattedTextField1 = new javax.swing.JFormattedTextField();
org.openide.awt.Mnemonics.setLocalizedText(jButton1, org.openide.util.NbBundle.getMessage(PreferencesTopComponent.class, "PreferencesTopComponent.jButton1.text")); // NOI18N
jFormattedTextField1.setText(org.openide.util.NbBundle.getMessage(PreferencesTopComponent.class, "PreferencesTopComponent.jFormattedTextField1.text")); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jFormattedTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jFormattedTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(266, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JFormattedTextField jFormattedTextField1;
// End of variables declaration//GEN-END:variables
private String getPrefferedModelPath(){
String data = "";
try {
File myObj = new File(/*propPath + */"preferences.fip");
try (Scanner myReader = new Scanner(myObj)) {
data = myReader.nextLine();
}
} catch (FileNotFoundException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
return data;
}
@Override
public void componentOpened() {
// TODO add custom code on component opening
jFormattedTextField1.setText(getPrefferedModelPath());
}
@Override
public void componentClosed() {
// TODO add custom code on component closing
}
void writeProperties(java.util.Properties p) {
// better to version settings since initial version as advocated at
// http://wiki.apidesign.org/wiki/PropertyFiles
p.setProperty("version", "1.0");
// TODO store your settings
}
void readProperties(java.util.Properties p) {
String version = p.getProperty("version");
// TODO read your settings according to their version
}
}