@Override public void action(final Object cmp) { for (int i = 1; i < EDITKIND.length; ++i) if (radio[i].isSelected()) kind = i; gui.gprop.set(GUIProp.LASTINSERT, kind); String msg = null; ok = kind != Data.TEXT || input2.getText().length != 0; if (kind != Data.TEXT && kind != Data.COMM) { ok = XMLToken.isQName(token(input1.getText())); if (!ok && !input1.getText().isEmpty()) msg = Util.info(INVALID, EDITNAME); } info.setText(msg, Msg.ERROR); enableOK(buttons, BUTTONOK, ok); }
/** * Returns the current serialization options. * * @param mth consider specified serialization method (may be {@code null}) * @return options * @throws BaseXException database exception */ private SerializerOptions options(final SerialMethod mth) throws BaseXException { final SerializerOptions sopts = new SerializerOptions(); sopts.assign(params.getText()); sopts.set(SerializerOptions.METHOD, SerialMethod.valueOf(method.getSelectedItem())); sopts.set(SerializerOptions.ENCODING, encoding.getSelectedItem()); if (mth == SerialMethod.JSON) { final JsonSerialOptions jopts = new JsonSerialOptions(); jopts.assign(mparams.getText()); sopts.set(SerializerOptions.JSON, jopts); } else if (mth == SerialMethod.CSV) { final CsvOptions copts = new CsvOptions(); copts.assign(mparams.getText()); sopts.set(SerializerOptions.CSV, copts); } return sopts; }
@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 close() { super.close(); final String in1 = input1.getText(); final String in2 = string(input2.getText()); switch (kind) { case Data.ATTR: case Data.PI: result.add(in1); result.add(in2); break; case Data.ELEM: result.add(in1); break; case Data.TEXT: case Data.COMM: result.add(in2); break; } }
@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(); }
/** * Returns the chosen XML file or directory path. * * @return file or directory */ public String path() { return path.getText().trim(); }
/** Opens a file dialog to choose an XML document or directory. */ private void choose() { final IOFile io = new BaseXFileChooser(CHOOSE_DIR, path.getText(), gui).select(Mode.DOPEN); if (io != null) path.setText(io.path()); }
/** * Runs a query. * * @param force force the execution of a new query */ void query(final boolean force) { final TokenBuilder tb = new TokenBuilder(); final Data data = gui.context.data(); final int cs = panel.getComponentCount(); for (int c = 0; c < cs; c += 2) { final BaseXCombo com = (BaseXCombo) panel.getComponent(c); final int k = com.getSelectedIndex(); if (k <= 0) continue; String key = com.getSelectedItem().toString(); final boolean attr = key.startsWith("@"); if (!key.contains(":") && !attr) key = "*:" + key; final Component comp = panel.getComponent(c + 1); String pattern = ""; String val1 = null; String val2 = null; if (comp instanceof BaseXTextField) { val1 = ((BaseXTextField) comp).getText(); if (!val1.isEmpty()) { if (val1.startsWith("\"")) { val1 = val1.replaceAll("\"", ""); pattern = PATEX; } else { pattern = attr && data.meta.attrindex || !attr && data.meta.textindex ? PATSUB : PATEX; } } } else if (comp instanceof BaseXCombo) { final BaseXCombo combo = (BaseXCombo) comp; if (combo.getSelectedIndex() != 0) { val1 = combo.getSelectedItem().toString(); pattern = PATEX; } } else if (comp instanceof BaseXDSlider) { final BaseXDSlider slider = (BaseXDSlider) comp; if (slider.min != slider.totMin || slider.max != slider.totMax) { final double m = slider.min; final double n = slider.max; val1 = (long) m == m ? Long.toString((long) m) : Double.toString(m); val2 = (long) n == n ? Long.toString((long) n) : Double.toString(n); pattern = PATNUM; } } if (attr) { key = "descendant-or-self::node()/" + key; if (tb.size() == 0) tb.add("//*"); if (pattern.isEmpty()) pattern = PATSIMPLE; } else { tb.add("//" + key); key = "text()"; } tb.addExt(pattern, key, val1, key, val2); } String qu = tb.toString(); final boolean root = gui.context.root(); final boolean rt = gui.gprop.is(GUIProp.FILTERRT); if (!qu.isEmpty() && !rt && !root) qu = "." + qu; String simple = all.getText().trim(); if (!simple.isEmpty()) { simple = Find.find(simple, gui.context, rt); qu = !qu.isEmpty() ? simple + " | " + qu : simple; } if (qu.isEmpty()) qu = rt || root ? "/" : "."; if (!force && last.equals(qu)) return; last = qu; gui.xquery(qu, false); }