Skip to content

Commit

Permalink
minor bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Wisser committed Aug 27, 2021
1 parent 49d3754 commit 9428436
Show file tree
Hide file tree
Showing 15 changed files with 163 additions and 43 deletions.
3 changes: 1 addition & 2 deletions driverlist.csv
Expand Up @@ -4,7 +4,7 @@ Oracle OCI;jdbc:oracle:oci:@<TNS_NAME>;oracle.jdbc.driver.OracleDriver;;https://
MySQL;jdbc:mysql://<HOST(localhost)>:<PORT(3306)>[/<DATABASE>];com.mysql.jdbc.Driver;lib/mysql-connector-java-8.0.21.jar;;jdbc:mysql://.*/(.+) jdbc:mysql://([^/:]+).* jdbc:mysql:([^/:]+).*;mysql.png
MySQL 5;jdbc:mysql://<HOST(localhost)>:<PORT(3306)>[/<DATABASE>];org.gjt.mm.mysql.Driver;lib/mysql-connector-java-5.1.5-bin.jar;;jdbc:mysql://.*/(.+) jdbc:mysql://([^/:]+).* jdbc:mysql:([^/:]+).*;mysql.png
MariaDB;jdbc:mariadb://<HOST(localhost)>:<PORT(3306)>[/<DATABASE>];org.mariadb.jdbc.Driver;lib/mariadb-java-client-2.4.4.jar;;jdbc:mariadb://.*/(.+) jdbc:mariadb://([^/:]+).* jdbc:mariadb:([^/:]+).*;mariadb.png
Microsoft SQL Server;jdbc:sqlserver://<HOST(localhost)>[\\<INSTANCE>][:<PORT>];com.microsoft.sqlserver.jdbc.SQLServerDriver;lib/mssql-jdbc-7.2.1.jre8.jar;;"jdbc:sqlserver://(.*\\\\[^:\;]+).* jdbc:sqlserver://.*\\binstanceName\\s*=\\s*([^:\;]+).* jdbc:sqlserver://.*\\bdatabaseName\\s*=\\s*([^:\;]+).* jdbc:sqlserver://.*\\bservername\\s*=\\s*([^:\;]+).* jdbc:sqlserver://([^/\\\\:\;]+).* ";mssql.png
Microsoft SQL Server;jdbc:sqlserver://<HOST(localhost)>[\\<INSTANCE>][:<PORT>];com.microsoft.sqlserver.jdbc.SQLServerDriver;lib/mssql-jdbc-9.4.0.jre8.jar;;jdbc:sqlserver://(.*\\\\[^:\;]+).* jdbc:sqlserver://.*\\binstanceName\\s*=\\s*([^:\;]+).* jdbc:sqlserver://.*\\bdatabaseName\\s*=\\s*([^:\;]+).* jdbc:sqlserver://.*\\bservername\\s*=\\s*([^:\;]+).* jdbc:sqlserver://([^/\\\\:\;]+).*;mssql.png
IBM Db2;jdbc:db2://<HOST(localhost)>:<PORT(50000)>/<DATABASE>;com.ibm.db2.jcc.DB2Driver;;https://repo1.maven.org/maven2/com/ibm/db2/jcc/11.5.4.0/jcc-11.5.4.0.jar;jdbc:db2://.*/(.+) jdbc:db2://([^/:]+).* jdbc:db2:([^/:]+).*;db2.png
SQLite;jdbc:sqlite:<DATABASEFILE>;org.sqlite.JDBC;lib/sqlite-jdbc-3.28.0.jar;;jdbc:sqlite:.*?([^/\\\\]+);sqlite.png
Sybase;jdbc:sybase:Tds:<HOST(localhost)>[:<PORT>];com.sybase.jdbc3.jdbc.SybDriver;;;jdbc:sybase:.*//([^/:]+).*;sybase.png
Expand All @@ -15,7 +15,6 @@ H2 TCP;jdbc:h2:tcp://<HOST(localhost)>[:<PORT>]/<DATABASEFILE>;org.h2.Driver;lib
Amazon Redshift;jdbc:redshift://<HOST(localhost)>[:<PORT>]/[<DATABASE>];com.amazon.redshift.jdbc4.Driver;;;jdbc:redshift://.*/(.+) jdbc:redshift://([^/:]+).* jdbc:redshift:([^/:]+).*;redshift.png
HSQL (HyperSQL);jdbc:hsqldb:<file|hsql|http>:<DATABASE>;org.hsqldb.jdbcDriver;;;jdbc:hsqldb:.*:([^/\\\\:]*);hsqldb.png
Derby;jdbc:derby://<HOST(localhost)>:<PORT>/<DATABASE>;org.apache.derby.jdbc.ClientDriver;lib/derbyclient.jar lib/derbytools.jar;;jdbc:derby://.*/(.+) jdbc:derby://([^/:]+).*;derby.png
Derby embedded;jdbc:derby:<DATABASE>;org.apache.derby.jdbc.EmbeddedDriver;lib/derbyclient.jar lib/derbytools.jar;;jdbc:derby:.*?([^/\\\\]+);derby.png
Interbase;jdbc:interbase://<HOST(localhost)>/<DATABASE>;interbase.interclient.Driver;;;jdbc:interbase://.*/(.+) jdbc:interbase://([^/:]+).* jdbc:interbase:([^/:]+).*;interbase.png
Exasol;jdbc:exa:<HOST(localhost)>:<PORT(8563)>;com.exasol.jdbc.EXADriver;;;jdbc:exa:.*?([^/\\\\]+);exasol.png
<other>;jdbc:<SUBPROTOCOL>:<NODE>[/<DATABASE>];;;;jdbc:odbc:([^:]+).* jdbc:([^:]+).*;other.png
Binary file added lib/mssql-jdbc-9.4.0.jre8.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions releasenotes.txt
@@ -1,3 +1,8 @@
10.5.8
- The connection dialog has been improved.
- Database-specific logos are now displayed in the connection dialog and in the status bar.
- The condition editor now also displays the number of rows that are "null" or "not null".

10.5.7
- An error in the validation of database connections that have not been used for a long time has been corrected.

Expand Down
2 changes: 1 addition & 1 deletion src/main/gui/net/sf/jailer/ui/DataModelManagerDialog.java
Expand Up @@ -352,7 +352,7 @@ public void windowActivated(WindowEvent e) {

setLocation(70, 80);
pack();
setSize(Math.max(840, getWidth()), 490);
setSize(Math.max(840, getWidth()), 536);
refresh();

initRestoreLastSessionButton();
Expand Down
29 changes: 23 additions & 6 deletions src/main/gui/net/sf/jailer/ui/DbConnectionDetailsEditor.form
Expand Up @@ -26,15 +26,15 @@
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-96,0,0,1,-112"/>
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-67,0,0,1,-104"/>
</AuxValues>

<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="jPanel1">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/>
<GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/>
</Constraint>
</Constraints>

Expand Down Expand Up @@ -86,7 +86,7 @@
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="50" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
<GridBagConstraints gridX="0" gridY="90" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
Expand Down Expand Up @@ -140,7 +140,7 @@
</AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="2" gridY="50" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/>
<GridBagConstraints gridX="2" gridY="90" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
Expand Down Expand Up @@ -443,7 +443,7 @@
<Component class="javax.swing.JSeparator" name="jSeparator2">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="46" gridWidth="4" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="16" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
<GridBagConstraints gridX="1" gridY="46" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="8" insetsLeft="0" insetsBottom="8" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
Expand Down Expand Up @@ -477,7 +477,24 @@
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="2" gridY="54" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
<GridBagConstraints gridX="2" gridY="94" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JSeparator" name="jSeparator3">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="85" gridWidth="4" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="8" insetsLeft="0" insetsBottom="8" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="logoLabel">
<Properties>
<Property name="text" type="java.lang.String" value=" "/>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="44" gridWidth="1" gridHeight="4" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
</Component>
Expand Down
94 changes: 86 additions & 8 deletions src/main/gui/net/sf/jailer/ui/DbConnectionDetailsEditor.java
Expand Up @@ -33,8 +33,10 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.regex.Matcher;
Expand Down Expand Up @@ -225,6 +227,49 @@ public void changedUpdate(DocumentEvent e) {
dbUrl.getDocument().addDocumentListener(docListener);
user.getDocument().addDocumentListener(docListener);

dbUrl.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
update();
}
@Override
public void insertUpdate(DocumentEvent e) {
update();
}
@Override
public void changedUpdate(DocumentEvent e) {
update();
}
private String getDBMSDriver(String url) {
if (!url.matches("jdbc:.+")) {
return null;
}
Optional<Line> result = driverlist.stream().filter(line -> {
String prefix = line.cells.get(1).replaceFirst("[</\\[@].*$", "");
return !prefix.isEmpty() && url.startsWith(prefix);
}).findAny();
if (result.isPresent()) {
return result.get().cells.get(2);
}
return null;
}
private void update() {
String driver = driverClass.getText().trim();
if (driver.isEmpty() || driverlist.stream().filter(line -> line.cells.get(2).equals(driver)).findFirst().isPresent()) {
String fromUrl = getDBMSDriver(dbUrl.getText().trim());
if (fromUrl != null && !fromUrl.isEmpty()) {
driverClass.setText(fromUrl);
}
}
String dbmsLogoURL = UIUtil.getDBMSLogoURL(dbUrl.getText().trim());
if (dbmsLogoURL == null || dbmsLogoURL.contains("other_small")) {
logoLabel.setIcon(null);
} else {
logoLabel.setIcon(UIUtil.scaleIcon(logoLabel, UIUtil.readImage(dbmsLogoURL, false), 2));
}
}
});

driverClass.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
Expand Down Expand Up @@ -289,8 +334,16 @@ public void changedUpdate(DocumentEvent e) {
}
private void check() {
List<String> driverURLs = retrieveDriverURLs(driverlist);
Set<String> files = driverURLs == null? new HashSet<String>() : driverURLs.stream().map(url -> {
try {
return toRelFileName(new File(Environment.newFile(HttpDownload.DOWNLOADFOLDER), HttpDownload.toFileName(new URL(url))).getAbsolutePath());
} catch (Exception e) {
return toRelFileName(url.trim());
}
}).collect(Collectors.toSet());
Set<String> jarsContent = Arrays.asList(jar1, jar2, jar3, jar4).stream().map(f -> f.getText().trim()).filter(v -> !v.isEmpty()).collect(Collectors.toSet());
downloadButton.setEnabled(driverURLs != null
&& Arrays.asList(jar1, jar2, jar3, jar4).stream().allMatch(f -> f.getText().trim().isEmpty()));
&& !jarsContent.containsAll(files));
downloadButton.setToolTipText(driverURLs == null? null :
driverURLs.stream().collect(Collectors.joining("<br>", "<html>", "</html>"))
);
Expand Down Expand Up @@ -506,6 +559,8 @@ private void initComponents() {
alias = new javax.swing.JTextField();
renameButton = new javax.swing.JButton();
jtdsWarnLabel = new javax.swing.JLabel();
jSeparator3 = new javax.swing.JSeparator();
logoLabel = new javax.swing.JLabel();

helpjdbc.setText("help");

Expand Down Expand Up @@ -546,7 +601,7 @@ private void initComponents() {
jLabel6.setText(" Driver-Class");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 50;
gridBagConstraints.gridy = 90;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
jPanel1.add(jLabel6, gridBagConstraints);

Expand Down Expand Up @@ -584,7 +639,7 @@ private void initComponents() {
jPanel1.add(jar2, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 50;
gridBagConstraints.gridy = 90;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
Expand Down Expand Up @@ -855,11 +910,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0);
jPanel1.add(downloadButton, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 46;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(4, 0, 16, 0);
gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0);
jPanel1.add(jSeparator2, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
Expand All @@ -880,18 +935,35 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
jtdsWarnLabel.setText("<html>Due to known problems with the jTDS JDBC driver, it is strongly recommended to use the original driver for SQL Server or Sybase.<html>");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 54;
gridBagConstraints.gridy = 94;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
jPanel1.add(jtdsWarnLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 85;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(8, 0, 8, 0);
jPanel1.add(jSeparator3, gridBagConstraints);

logoLabel.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 44;
gridBagConstraints.gridheight = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0);
jPanel1.add(logoLabel, gridBagConstraints);

gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0);
getContentPane().add(jPanel1, gridBagConstraints);

pack();
Expand Down Expand Up @@ -1057,7 +1129,7 @@ private void downloadButtonActionPerformed(java.awt.event.ActionEvent evt) {//GE

AtomicBoolean ok = new AtomicBoolean(true);
Function<Long, String> updateInfo = total -> {
String text = "<html><b>Downloading... " + (total > 0? "(" + total / 1024 + "K)" : "") + "</b><br>"
String text = "<html><b>Downloading... " + (total > 0? "(" + total / 1024 + "K)" : "(1.1%)") + "</b><br>"
+ driverURLs.stream().collect(Collectors.joining("<br>")) + "</html>";
return text;
};
Expand Down Expand Up @@ -1115,6 +1187,10 @@ public void run() throws Throwable {
public void run() {
if (ok.get()) {
synchronized (LOCK) {
jar1.setText("");
jar2.setText("");
jar3.setText("");
jar4.setText("");
if (files.size() > 0) {
jar1.setText(toRelFileName(files.get(0)));
}
Expand Down Expand Up @@ -1189,6 +1265,7 @@ protected void onSelect() {
private javax.swing.JPanel jPanel5;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JTextField jar1;
private javax.swing.JTextField jar2;
private javax.swing.JTextField jar3;
Expand All @@ -1198,6 +1275,7 @@ protected void onSelect() {
private javax.swing.JButton loadButton2;
private javax.swing.JButton loadButton3;
private javax.swing.JButton loadButton4;
private javax.swing.JLabel logoLabel;
private javax.swing.JButton okButton;
javax.swing.JPasswordField password;
private javax.swing.JButton renameButton;
Expand Down
2 changes: 1 addition & 1 deletion src/main/gui/net/sf/jailer/ui/DbConnectionDialog.java
Expand Up @@ -325,7 +325,7 @@ public Component getTableCellRendererComponent(
if (value instanceof String && ((String) value).startsWith("*")) {
((JLabel) render).setToolTipText(null);
((JLabel) render).setText(null);
((JLabel) render).setIcon(UIUtil.scaleIcon(((JLabel) render), UIUtil.readImage(((String) value).substring(1), false), 1.5));
((JLabel) render).setIcon(UIUtil.scaleIcon(((JLabel) render), UIUtil.readImage(((String) value).substring(1), false), 1.4));
}
return render;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/gui/net/sf/jailer/ui/StringSearchPanel.java
Expand Up @@ -518,7 +518,7 @@ public void keyTyped(KeyEvent e) {
} else if (e.getKeyChar() == KeyEvent.VK_DOWN) {
searchList.grabFocus();
searchList.setSelectedIndex(0);
} else if (e.getKeyChar() == '\n') { // TODO VK_ENTER?
} else if (e.getKeyChar() == '\n') {
result = searchList.getSelectedValue();
plainIsValid = e.getSource() == searchTextField;
close(true);
Expand Down
2 changes: 1 addition & 1 deletion src/main/gui/net/sf/jailer/ui/UIUtil.java
Expand Up @@ -1879,7 +1879,7 @@ public static String getDBMSLogoURL(String url) {
return null;
}
Optional<Line> result = loadDriverList(null).stream().filter(line -> {
String prefix = line.cells.get(1).replaceFirst("[<\\[].*$", "");
String prefix = line.cells.get(1).replaceFirst("[</\\[@].*$", "");
return !prefix.isEmpty() && url.startsWith(prefix);
}).findAny();
if (result.isPresent()) {
Expand Down
Expand Up @@ -989,6 +989,7 @@ private void updateBorder() {

andCondition = new JComboBox2();
andCondition.setEditable(true);
andCondition.setMaximumRowCount(12);
GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
Expand Down

0 comments on commit 9428436

Please sign in to comment.