Skip to content

Commit b073c01

Browse files
Fix Windows and macOS look and feel issues
1 parent a36a79f commit b073c01

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import java.awt.event.MouseListener
2929
import java.text.DecimalFormat
3030
import java.util.ArrayList
3131
import java.util.regex.Pattern
32+
import javax.swing.BorderFactory
3233
import javax.swing.Box
3334
import javax.swing.DefaultComboBoxModel
3435
import javax.swing.JCheckBoxMenuItem
@@ -381,14 +382,23 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
381382
}
382383

383384
private def isWindowsLookAndFeel() {
384-
val laf = UIManager.systemLookAndFeelClassName
385-
if (laf.toLowerCase.contains("windows")) {
385+
val laf = UIManager.lookAndFeel?.name
386+
if (laf == "Windows") {
386387
return true
387388
} else {
388389
return false
389390
}
390391
}
391392

393+
private def isMacLookAndFeel() {
394+
val laf = UIManager.lookAndFeel?.name
395+
if (laf == "Mac OS X") {
396+
return true
397+
} else {
398+
return false
399+
}
400+
}
401+
392402
private def void fixCheckBoxMenuItem(JCheckBoxMenuItem item) {
393403
if (windowsLookAndFeel) {
394404
if (item.selected) {
@@ -934,6 +944,7 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
934944
testInfoPanel.add(testProcedureTextField, c)
935945
// - Description
936946
val testDescriptionLabel = new JLabel(UtplsqlResources.getString("RUNNER_DESCRIPTION_LABEL"))
947+
testDescriptionLabel.border = BorderFactory.createEmptyBorder(if (macLookAndFeel) {5} else {3}, 0, 0, 0)
937948
c.gridx = 0
938949
c.gridy = 3
939950
c.gridwidth = 1
@@ -961,6 +972,7 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
961972
testInfoPanel.add(testDescriptionTextArea, c)
962973
// - Suitepath (id)
963974
val testIdLabel = new JLabel(UtplsqlResources.getString("RUNNER_TEST_ID_COLUMN"))
975+
testIdLabel.border = BorderFactory.createEmptyBorder(if (macLookAndFeel) {5} else {3}, 0, 0, 0)
964976
c.gridx = 0
965977
c.gridy = 4
966978
c.gridwidth = 1
@@ -1147,10 +1159,22 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
11471159
c.weighty = 1
11481160
basePanel.add(horizontalSplitPane, c)
11491161

1150-
// fix missing borders (e.g. on windows look and feel)
1151-
val referenceBorder = testOwnerTextField.border
1152-
testDescriptionTextArea.border = referenceBorder
1153-
testIdTextArea.border = referenceBorder
1162+
// fix borders (colors, margins)
1163+
if (macLookAndFeel) {
1164+
val border = BorderFactory.createCompoundBorder(
1165+
BorderFactory.createEmptyBorder(3, 3, 3, 3),
1166+
BorderFactory.createCompoundBorder(
1167+
BorderFactory.createLineBorder(new Color(219, 219, 219)),
1168+
BorderFactory.createEmptyBorder(1, 1, 1, 1)
1169+
)
1170+
)
1171+
testDescriptionTextArea.border = border
1172+
testIdTextArea.border = border
1173+
} else {
1174+
val referenceBorder = testOwnerTextField.border
1175+
testDescriptionTextArea.border = referenceBorder
1176+
testIdTextArea.border = referenceBorder
1177+
}
11541178
}
11551179

11561180
}

0 commit comments

Comments
 (0)