@Override public void close() { if (!ok) return; super.close(); gui.set(MainOptions.TEXTINDEX, txtindex.isSelected()); gui.set(MainOptions.ATTRINDEX, atvindex.isSelected()); gui.set(MainOptions.FTINDEX, ftxindex.isSelected()); general.setOptions(); ft.setOptions(); }
@Override public void close() { if (!ok) return; super.close(); gui.set(MainOptions.TEXTINDEX, textindex.isSelected()); gui.set(MainOptions.ATTRINDEX, attrindex.isSelected()); gui.set(MainOptions.TOKENINDEX, tokenindex.isSelected()); gui.set(MainOptions.FTINDEX, ftindex.isSelected()); general.setOptions(); options.setOptions(null); for (final DialogIndex di : index) di.setOptions(); }
@Override public void action(final Object comp) { final boolean valid = general.action(comp, true); ft.action(ftxindex.isSelected()); // ...must be located before remaining checks if (comp == general.browse || comp == general.input) dbname.setText(general.dbname); final String nm = dbname.getText().trim(); ok = valid && !nm.isEmpty(); String inf = valid ? ok ? null : ENTER_DB_NAME : RES_NOT_FOUND; Msg icon = Msg.ERROR; if (ok) { ok = Databases.validName(nm); if (ok) gui.gopts.set(GUIOptions.DBNAME, nm); if (!ok) { // name of database is invalid inf = Util.info(INVALID_X, NAME); } else if (general.input.getText().trim().isEmpty()) { // database will be empty inf = EMPTY_DB; icon = Msg.WARN; } else if (db.contains(nm)) { // old database will be overwritten inf = OVERWRITE_DB; icon = Msg.WARN; } } general.info.setText(inf, icon); enableOK(buttons, B_OK, ok); }
@Override public void action(final Object cmp) { creds.setText(TRANSLATION + COLS + creds(lang.getSelectedItem().toString())); if (cmp == names) { gui.gprop.set(GUIProp.SHOWNAME, names.isSelected()); gui.notify.layout(); } final int mh = hitsAsProperty(); label.setText(mh == -1 ? ALL : Integer.toString(mh)); }
@Override public void close() { final MainProp mprop = gui.context.mprop; mprop.set(MainProp.LANG, lang.getSelectedItem().toString()); // new database path: close existing database final String dbpath = path.getText(); if (!mprop.get(MainProp.DBPATH).equals(dbpath)) gui.execute(new Close()); mprop.set(MainProp.DBPATH, dbpath); mprop.write(); final int mh = hitsAsProperty(); gui.context.prop.set(Prop.MAXHITS, mh); final GUIProp gprop = gui.gprop; gprop.set(GUIProp.MOUSEFOCUS, focus.isSelected()); gprop.set(GUIProp.SIMPLEFD, simpfd.isSelected()); gprop.set(GUIProp.JAVALOOK, javalook.isSelected()); gprop.set(GUIProp.MAXHITS, mh); gprop.write(); dispose(); }
/** * Default constructor. * * @param main reference to the main window */ public DialogPrefs(final GUI main) { super(main, PREFERENCES); // create checkboxes final BaseXBack pp; if (Prop.langright) pp = new BaseXBack(new RTLTableLayout(12, 1)); else pp = new BaseXBack(new TableLayout(12, 1)); pp.add(new BaseXLabel(DATABASE_PATH + COL, true, true)); BaseXBack p; if (Prop.langright) p = new BaseXBack(new RTLTableLayout(1, 2, 8, 0)); else p = new BaseXBack(new TableLayout(1, 2, 8, 0)); final MainProp mprop = gui.context.mprop; final GUIProp gprop = gui.gprop; path = new BaseXTextField(mprop.dbpath().path(), this); final BaseXButton button = new BaseXButton(BROWSE_D, this); button.addActionListener( new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final IOFile file = new BaseXFileChooser(CHOOSE_DIR, path.getText(), gui).select(Mode.DOPEN); if (file != null) path.setText(file.dirPath()); } }); p.add(path); p.add(button); pp.add(p); pp.add(new BaseXLabel(GUI_INTERACTIONS + COL, true, true).border(12, 0, 6, 0)); // checkbox for Java look and feel javalook = new BaseXCheckBox(JAVA_LF, gprop.is(GUIProp.JAVALOOK), this); pp.add(javalook); // checkbox for realtime mouse focus focus = new BaseXCheckBox(RT_FOCUS, gprop.is(GUIProp.MOUSEFOCUS), this); pp.add(focus); // checkbox for simple file dialog simpfd = new BaseXCheckBox(SIMPLE_FILE_CHOOSER, gprop.is(GUIProp.SIMPLEFD), this); pp.add(simpfd); // enable only if current document contains name attributes final boolean sn = gprop.is(GUIProp.SHOWNAME); names = new BaseXCheckBox(SHOW_NAME_ATTS, sn, 6, this); final Data data = gui.context.data(); names.setEnabled(data != null && ViewData.nameID(data) != 0); oldShowNames = sn; pp.add(names); // maximum number of hits to be displayed final int mh = hitsForSlider(); limit = new BaseXSlider( 0, HITS.length - 1, mh, this, new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { action(limit); } }); label = new BaseXLabel(" "); if (Prop.langright) p = new BaseXBack(new RTLTableLayout(1, 4, 12, 0)); else p = new BaseXBack(new TableLayout(1, 4, 12, 0)); p.add(new BaseXLabel(MAX_NO_OF_HITS + COL)); p.add(limit); p.add(label); pp.add(p); // checkbox for simple file dialog pp.add(new BaseXLabel(LANGUAGE_RESTART + COL, true, true).border(16, 0, 6, 0)); lang = new BaseXCombo(this, LANGS[0]); lang.setSelectedItem(mprop.get(MainProp.LANG)); creds = new BaseXLabel(" "); if (Prop.langright) p = new BaseXBack(new RTLTableLayout(1, 2, 12, 0)); else p = new BaseXBack(new TableLayout(1, 2, 12, 0)); p.add(lang); p.add(creds); pp.add(p); set(pp, BorderLayout.CENTER); set(okCancel(), BorderLayout.SOUTH); action(null); finish(null); }