Membuat Primary Option Panel pada Netbeans Platform

Di tulisan kemarin, kita udah bahas caranya bikin option panel, tapi yang secondary. Jadi sekarang gw kasi liat hasil jadi yang primary… Hasil akhir:

Selection_003

See?! Ada sebuah panel bernama “Pengaturan”, terus ada 1 label “nama” dan 1 textfield untuk memasukkan nama. Seperti yang udah kamu tahu, option panel biasanya digunain buat nyimpan variabel2 global dari sebuah aplikasi, termasuk setting-an. Contoh, pengaturan ukuran font yang bakal digunain, pengaturan proxy jaringan kalo seandainya aplikasinya pake jaringan, dan lainnya.

Oke, langsung bikin yak! Pertama, bikin 1 modul terlebih dahulu di NPA yang udah kamu sediain sebelumnya (cara bikin NPA baru sama module, bisa liat di sini). Di modul ini, klik kanan package yang kamu inginkan, pilih “New → Other”. Dan pas muncul window berikutnya, di bagian kiri pilih “Module Development”, di bagian kanan pilih “Options Panel”.

Selection_004

Selection_005

Perhatiin kalo “Allow Secondary Panels”-nya gak dicentang. Tekan Next, dan perhatiin file apa ajah yang bakal dibikin… Yang ada “Controller”-nya, itu fungsi-nya sebagai tempat control dari si option, terus kalo ekstensi-nya .form sama .java (dengan nama yang sama), itu tempat nge-desain penampilan si control panel.

Buat icon-nya, kalo sulit cari ikon 32×32, coba cari di sini, atau ambil dari tulisan sebelumnya.

Selection_006

Abis itu, buka file PengaturanPanelPanel.java, di sini, kita bakal desain tampilannya jadi kayak gini (gw pake-nya flow layout):

Selection_007

Artinya, kita bakal simpan suatu nama di sebuah variabel. Buat melakukan yang namanya penyimpanan, kita pake kode:

NbPreferences.forModule(PengaturanPanel.class).put(<nama_var>, <teks_yg_disimpan>);

Dan kode di atas, butuh import esuatu, yaitu package:

import org.openide.util.NbPreferences;

Berhubung biasanya penyimpanan dilakukan setelah kita tekan “OK” atau “Apply” di window option, jadinya kita musti naruh kode tersebut di method yang pasti dijalanin kalo option panel udah ditutup. Ada method2 khusus yang bakal dijalankan untuk hal2 gitu:

  • load: dijalanin pas option panel dibuka
  • store: dijalanin pas option panel ditutup
  • valid: gak tau fungsinya… gw gak pernah make

Method2 itu bakal keliatan kalo pilih mode “source” dari “PengaturanPanelPanel.java”.
Jadi, nanti ubah bagian source jadi kayak gini:

import org.openide.util.NbPreferences;

final class PengaturanPanelPanel extends javax.swing.JPanel {

    private final PengaturanOptionsPanelController controller;

    PengaturanPanel(PengaturanOptionsPanelController controller) {
        this.controller = controller;
        initComponents();
    }

    (+) private void initComponents() 
    
    void load() {
        
    }
    void store() {
        NbPreferences.forModule(PengaturanPanel.class).put("nama", jTextField1.getText());
    }

    boolean valid() {
        true;
    }

    private javax.swing.JLabel jLabel1;
    private javax.swing.JTextField jTextField1;

}

Yang berubah, cuma yang gw kasi warna biru.

Kalo udah gitu, bisa lo jalanin aplikasinya. Nantinya pilih menu “Tools →Option”. Di sana, bakal muncul 1 tab dengan ikon yang udah kamu pilih pas ngebangun option ini.

Seandainya gak sukak ama icon itu, coba buka file yang ada kata2 “Controller”-nya, kalo gw jadinya “PengaturanPanelOptionsPanelController.java”. Nanti lihat bagian ini:

@OptionsPanelController.TopLevelRegistration(
        categoryName = "#OptionsCategory_Name_Pengaturan",
        iconBase = "org/demo/arby/1394093583_Tools.png",
        keywords = "#OptionsCategory_Keywords_Pengaturan",
        keywordsCategory = "Pengaturan"
)

Yang warna biru, itu yang diubah… Sesuaiin path-nya sama nama file yang dimau.

Balik ke bagian option panel yang udah dijalanin, kalo udah masukin suatu nama, terus tekan “OK”, artinya udah ada satu variabel global yang disimpen, adanya di bagian build dari NPA. NPA lhoh yah… kan kita bicaranya variabel global dari aplikasi… bukan per-modul. Tepatnya di bagian build dari folder project, “build → testuserdir → config → Preferences → org → demo”.

Selection_008

Selection_009

Kalo dibuka “arby.properties” itu, isinya variabel yang kita simpan…

nama=Arby

“nama” diambil dari put(“nama”, x), trus yang “Arby” diambil dari harga x yang diambil dari textfield. Dan kalo bertanya2 tentang cara ngambilnya, bisa pake get. Sekarang, coba tambahin kode gini di method “load”:

    void load() {
        String x = NbPreferences.forModule(PengaturanPanelPanel.class).get("nama","");
        jTextField1.setText(x);
    }

Kode diatas, maksudnya, ambil variabel yang disimpan via class “PengaturanPanelPanel” dengan nama variabel “nama”, dan seandainya variabel itu gak ada, ganti pake string kosong (“”)… gitu… Seabisnya diambil variabel itu, simpen dalam “x”, terus tampilin si “x” di text field.

Trus jalanin lagi NPA-nya, pasti ada nilai di aplikasi yang udah dijalanin… tapi inget.. pas ngejalanin, jangan pake “Clean and Build” dulu… coz ntar variabel global-nya bakal ke-clean, jadi variabelnya gak kebaca sama sekali.

Sumber: situs netbeans.org
Valid: Sejauh ini.. yap!
Masa Kadaluarsa: sampe beda versi netbeans

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s