You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2022/07/14 05:49:51 UTC

[groovy] branch GROOVY_4_0_X updated: GROOVY-10686: Additional refactoring - prev/next card buttons

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
     new 0cffc3c8b6 GROOVY-10686: Additional refactoring - prev/next card buttons
0cffc3c8b6 is described below

commit 0cffc3c8b69d405de909e3d1f0fe538d4156ad41
Author: Paul King <pa...@asert.com.au>
AuthorDate: Thu Jul 14 14:40:22 2022 +1000

    GROOVY-10686: Additional refactoring - prev/next card buttons
---
 .../groovy/groovy/console/ui/AstBrowser.groovy     |   1 +
 .../groovy/groovy/console/ui/ConsoleActions.groovy |   2 +-
 .../groovy/groovy/console/ui/ObjectBrowser.groovy  |  24 +++++++++++++++++++--
 .../groovy/console/ui/icons/resultset_next.png     | Bin 0 -> 395 bytes
 .../groovy/console/ui/icons/resultset_previous.png | Bin 0 -> 389 bytes
 5 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstBrowser.groovy b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstBrowser.groovy
index 3637f2216b..99954b9628 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstBrowser.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstBrowser.groovy
@@ -388,6 +388,7 @@ class AstBrowser {
                         ))
                         menuItem(action(
                                 name: 'Browse',
+                                enabled: table.model.getValueAt(table.selectedRow, valueCol) != null,
                                 closure: outer.&launchAction.curry(table, valueCol, pathClosure),
                                 smallIcon: imageIcon(resource: 'icons/page_white_go.png', class: this),
                                 shortDescription: 'Browse'
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
index e05ced94ce..5d72714d74 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
@@ -404,7 +404,7 @@ smartHighlighterAction = action(
 
 aboutAction = action(
         name: 'About',
-        closure: controller.&aboutAction,
+        closure: controller.&showAbout,
         smallIcon: imageIcon(resource: 'icons/information.png', class: this),
         mnemonic: 'A'
 )
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ObjectBrowser.groovy b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ObjectBrowser.groovy
index fefae63d20..3c436b0b9f 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ObjectBrowser.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ObjectBrowser.groovy
@@ -26,6 +26,7 @@ import groovy.swing.table.TableSorter
 import javax.swing.ToolTipManager
 import javax.swing.WindowConstants
 import java.awt.FlowLayout
+import java.awt.Insets
 import java.awt.Toolkit
 import java.awt.datatransfer.StringSelection
 import java.awt.event.MouseAdapter
@@ -132,7 +133,11 @@ class ObjectBrowser {
                     border: emptyBorder([5, 10, 5, 10]),
                     constraints: NORTH) {
                 flowLayout(alignment: FlowLayout.LEFT)
-                def props = inspector.classProps
+                def props = inspector.classProps.findAll{ it != 'implements ' }
+                try {
+                    def module = inspector.object.class.module.name
+                    if (module) props.add(0, 'module ' + module)
+                } catch(Exception ignore) {}
                 def classLabel = '<html>' + props.join('<br>')
                 label(classLabel)
             }
@@ -262,8 +267,17 @@ class ObjectBrowser {
                     border: emptyBorder([5, 10, 5, 10]),
                     constraints: SOUTH) {
                 boxLayout(axis: 2)
+                button(icon: imageIcon(resource: 'icons/resultset_previous.png', class: this),
+                        margin: [5, 5, 5, 5] as Insets,
+                        actionPerformed: { tracker.current--; show() },
+                        enabled: bind { tracker.current > 0 })
                 label('Path:  ')
                 textField(editable: false, text: path)
+                button(icon: imageIcon(resource: 'icons/resultset_next.png', class: this),
+                        margin: [5, 5, 5, 5] as Insets,
+                        actionPerformed: { tracker.current++; show() },
+                        enabled: bind { tracker.current < pathCount - 1 }
+                )
             }
         }
     }
@@ -299,12 +313,14 @@ class ObjectBrowser {
                         ))
                         menuItem(action(
                                 name: 'Browse',
+                                enabled: table.model.getValueAt(table.selectedRow, valueCol) != null,
                                 closure: outer.&launchAction.curry(table, valueCol, false, pathClosure),
                                 smallIcon: imageIcon(resource: 'icons/page_white_stack.png', class: this),
                                 shortDescription: 'Browse'
                         ))
                         menuItem(action(
                                 name: 'Browse in new window',
+                                enabled: table.model.getValueAt(table.selectedRow, valueCol) != null,
                                 closure: outer.&launchAction.curry(table, valueCol, true, pathClosure),
                                 smallIcon: imageIcon(resource: 'icons/page_white_go.png', class: this),
                                 shortDescription: 'Browse window'
@@ -339,7 +355,11 @@ class ObjectBrowser {
 
     void showAction(int idx, EventObject evt) {
         tracker.current = idx
-        cards.layout.show(cards, 'path' + idx)
+        show()
+    }
+
+    void show() {
+        cards.layout.show(cards, 'path' + tracker.current)
         cards.revalidate()
     }
 
diff --git a/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_next.png b/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_next.png
new file mode 100644
index 0000000000..e252606d3e
Binary files /dev/null and b/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_next.png differ
diff --git a/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_previous.png b/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_previous.png
new file mode 100644
index 0000000000..18f9cc1094
Binary files /dev/null and b/subprojects/groovy-console/src/main/resources/groovy/console/ui/icons/resultset_previous.png differ