gvcsfx 0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/Gemfile +24 -0
- data/README.md +71 -0
- data/bin/gvcsfx +13 -0
- data/bin/gvcsfx.rb +97 -0
- data/config/warble.rb +212 -0
- data/fx/add_workspace.fxml +90 -0
- data/fx/diff.fxml +51 -0
- data/fx/float.fxml +29 -0
- data/fx/main.fxml +637 -0
- data/fx/show_text.fxml +50 -0
- data/fx/stash_select.fxml +59 -0
- data/gvcs_fx.rb +85 -0
- data/handlers/add_workspace_controller.rb +88 -0
- data/handlers/event_handler.rb +58 -0
- data/handlers/float_win_controller.rb +68 -0
- data/handlers/fx_alert.rb +120 -0
- data/handlers/listener.rb +59 -0
- data/handlers/main_win_controller.rb +191 -0
- data/handlers/notification.rb +113 -0
- data/handlers/show_text_controller.rb +38 -0
- data/handlers/stash_select_controller.rb +86 -0
- data/handlers/tab_branches.rb +312 -0
- data/handlers/tab_files.rb +27 -0
- data/handlers/tab_ignore_rules.rb +40 -0
- data/handlers/tab_logs.rb +222 -0
- data/handlers/tab_repos.rb +277 -0
- data/handlers/tab_state.rb +571 -0
- data/handlers/tab_tags.rb +224 -0
- data/handlers/tray.rb +128 -0
- data/handlers/workspace.rb +547 -0
- data/javafx_test.rb +81 -0
- data/lib/global.rb +56 -0
- data/lib/log_helper.rb +40 -0
- data/lib/store.rb +152 -0
- data/lib/version.rb +21 -0
- data/res/accept.png +0 -0
- data/res/cross.png +0 -0
- data/res/tick.png +0 -0
- data/res/version-control.png +0 -0
- data/res/warn.png +0 -0
- data/res/world.png +0 -0
- metadata +156 -0
data/fx/show_text.fxml
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
5
|
+
Author: Chris Liaw <chrisliaw@antrapol.com>
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
-->
|
20
|
+
|
21
|
+
<?import javafx.geometry.Insets?>
|
22
|
+
<?import javafx.scene.control.Button?>
|
23
|
+
<?import javafx.scene.control.Label?>
|
24
|
+
<?import javafx.scene.control.TextArea?>
|
25
|
+
<?import javafx.scene.layout.HBox?>
|
26
|
+
<?import javafx.scene.layout.VBox?>
|
27
|
+
<?import javafx.scene.text.Font?>
|
28
|
+
|
29
|
+
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="353.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
|
30
|
+
<children>
|
31
|
+
<Label fx:id="lblHeader" text="Diff Result">
|
32
|
+
<font>
|
33
|
+
<Font name="System Bold" size="13.0" />
|
34
|
+
</font>
|
35
|
+
</Label>
|
36
|
+
<TextArea fx:id="txtContent" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="280.0" minWidth="-Infinity" wrapText="true" VBox.vgrow="ALWAYS">
|
37
|
+
<VBox.margin>
|
38
|
+
<Insets bottom="5.0" top="5.0" />
|
39
|
+
</VBox.margin>
|
40
|
+
</TextArea>
|
41
|
+
<HBox alignment="CENTER_RIGHT" maxHeight="38.0" maxWidth="1.7976931348623157E308" minHeight="38.0" prefHeight="38.0" VBox.vgrow="ALWAYS">
|
42
|
+
<children>
|
43
|
+
<Button fx:id="butClose" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#win_close" prefWidth="80.0" text="Close" />
|
44
|
+
</children>
|
45
|
+
</HBox>
|
46
|
+
</children>
|
47
|
+
<padding>
|
48
|
+
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
49
|
+
</padding>
|
50
|
+
</VBox>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
5
|
+
Author: Chris Liaw <chrisliaw@antrapol.com>
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
-->
|
20
|
+
|
21
|
+
<?import javafx.geometry.Insets?>
|
22
|
+
<?import javafx.scene.control.Button?>
|
23
|
+
<?import javafx.scene.control.ComboBox?>
|
24
|
+
<?import javafx.scene.control.Label?>
|
25
|
+
<?import javafx.scene.control.TextField?>
|
26
|
+
<?import javafx.scene.layout.HBox?>
|
27
|
+
<?import javafx.scene.layout.VBox?>
|
28
|
+
<?import javafx.scene.text.Font?>
|
29
|
+
|
30
|
+
|
31
|
+
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="178.0" prefWidth="507.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
|
32
|
+
<children>
|
33
|
+
<Label fx:id="lblTitle" text="Restore Stash To New Branch" wrapText="true">
|
34
|
+
<font>
|
35
|
+
<Font name="System Bold" size="14.0" />
|
36
|
+
</font>
|
37
|
+
</Label>
|
38
|
+
<Label fx:id="lblContent" text="Please select one of the stash record in the combox below to restore:" wrapText="true" />
|
39
|
+
<HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" minHeight="-Infinity" prefHeight="48.0" VBox.vgrow="NEVER">
|
40
|
+
<children>
|
41
|
+
<ComboBox fx:id="cmbOptions" />
|
42
|
+
</children>
|
43
|
+
</HBox>
|
44
|
+
<TextField fx:id="txtNewBranch" alignment="CENTER" promptText="New branch name" />
|
45
|
+
<HBox alignment="CENTER_RIGHT" prefHeight="48.0" prefWidth="470.0" VBox.vgrow="NEVER">
|
46
|
+
<children>
|
47
|
+
<Button fx:id="butOk" defaultButton="true" maxWidth="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#butOk_onAction" prefWidth="80.0" text="OK">
|
48
|
+
<HBox.margin>
|
49
|
+
<Insets right="5.0" />
|
50
|
+
</HBox.margin>
|
51
|
+
</Button>
|
52
|
+
<Button fx:id="butCancel" cancelButton="true" maxWidth="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#win_close" prefWidth="80.0" text="Cancel" />
|
53
|
+
</children>
|
54
|
+
</HBox>
|
55
|
+
</children>
|
56
|
+
<padding>
|
57
|
+
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
58
|
+
</padding>
|
59
|
+
</VBox>
|
data/gvcs_fx.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
2
|
+
# Author: Chris Liaw <chrisliaw@antrapol.com>
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
|
18
|
+
require 'jrubyfx'
|
19
|
+
|
20
|
+
require_relative "lib/version"
|
21
|
+
|
22
|
+
fxml_root File.join(File.dirname(__FILE__),"fx")
|
23
|
+
|
24
|
+
require_relative 'handlers/main_win_controller'
|
25
|
+
require_relative 'handlers/tray'
|
26
|
+
require_relative 'handlers/float_win_controller'
|
27
|
+
|
28
|
+
module GvcsFx
|
29
|
+
class MainWin < JRubyFX::Application
|
30
|
+
include GvcsFx::Tray
|
31
|
+
|
32
|
+
attr_reader :stage
|
33
|
+
def start(stage)
|
34
|
+
|
35
|
+
@stage = stage
|
36
|
+
#@stage.always_on_top = true
|
37
|
+
#@stage.init_style = javafx.stage.StageStyle::UNDECORATED
|
38
|
+
#javafx.application.Platform.implicit_exit = false
|
39
|
+
|
40
|
+
# temporary disable for direct testing
|
41
|
+
#with(stage, title: "G-VCS Float") do
|
42
|
+
# fxml FloatWinController
|
43
|
+
# show
|
44
|
+
#end
|
45
|
+
|
46
|
+
MainWinController.load_into(@stage)
|
47
|
+
@stage.show
|
48
|
+
|
49
|
+
# this is correct can show tray
|
50
|
+
# but hide/show javafx stage doesn't work
|
51
|
+
#javax.swing.SwingUtilities.invokeLater do
|
52
|
+
# start_tray(self)
|
53
|
+
#end
|
54
|
+
|
55
|
+
end # start
|
56
|
+
|
57
|
+
def show_stage
|
58
|
+
javafx.application.Platform.run_later do
|
59
|
+
puts "insite run_later #{@stage}"
|
60
|
+
if not @stage.nil?
|
61
|
+
@stage.show
|
62
|
+
@stage.toFront
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def hide_stage
|
68
|
+
javafx.application.Platform.run_later do
|
69
|
+
@stage.hide
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
if $0 == __FILE__
|
77
|
+
#puts "Launching"
|
78
|
+
GvcsFx::MainWin.launch
|
79
|
+
|
80
|
+
## put swing code in its own event loop or the right click menu and the icon itself won't show
|
81
|
+
#event_thread = nil
|
82
|
+
#javax.swing.SwingUtilities.invokeAndWait { event_thread = java.lang.Thread.currentThread }
|
83
|
+
#event_thread.join
|
84
|
+
end
|
85
|
+
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
2
|
+
# Author: Chris Liaw <chrisliaw@antrapol.com>
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
|
18
|
+
module GvcsFx
|
19
|
+
class AddWorkspaceController
|
20
|
+
include JRubyFX::Controller
|
21
|
+
include Antrapol::ToolRack::ExceptionUtils
|
22
|
+
fxml "add_workspace.fxml"
|
23
|
+
|
24
|
+
ADDPROJ_KEY = "<Add New Project>"
|
25
|
+
|
26
|
+
attr_reader :result
|
27
|
+
def initialize
|
28
|
+
init
|
29
|
+
end
|
30
|
+
|
31
|
+
def init
|
32
|
+
@cmbProject.items.add_all(["",ADDPROJ_KEY])
|
33
|
+
hide_new_proj_entry
|
34
|
+
end
|
35
|
+
|
36
|
+
def add_option(opt)
|
37
|
+
@cmbProject.items.add(opt)
|
38
|
+
end
|
39
|
+
|
40
|
+
def butOpen_onAction(evt)
|
41
|
+
|
42
|
+
end # butOpen_onAction
|
43
|
+
|
44
|
+
def cmbProj_onAction(evt)
|
45
|
+
val = @cmbProject.selection_model.selected_item
|
46
|
+
if not_empty?(val)
|
47
|
+
if val == ADDPROJ_KEY
|
48
|
+
show_new_proj_entry
|
49
|
+
else
|
50
|
+
hide_new_proj_entry
|
51
|
+
end
|
52
|
+
else
|
53
|
+
hide_new_proj_entry
|
54
|
+
end
|
55
|
+
end # cmbProj_onAction
|
56
|
+
|
57
|
+
def butCreate_onAction(evt)
|
58
|
+
@result = [@cmbProject.selection_model.selected_item, @txtNewProjName.text]
|
59
|
+
@butOpen.scene.window.close
|
60
|
+
end
|
61
|
+
|
62
|
+
def butCancel_onAction(evt)
|
63
|
+
@butOpen.scene.window.close
|
64
|
+
end
|
65
|
+
|
66
|
+
def path=(val)
|
67
|
+
@lblWorkspacePath.text = val
|
68
|
+
end
|
69
|
+
|
70
|
+
def txtNewProjName_keyreleased(evt)
|
71
|
+
if (not evt.nil?) and evt.code == javafx.scene.input.KeyCode::ENTER
|
72
|
+
butCreate_onAction(nil)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
def hide_new_proj_entry
|
78
|
+
@lblNewProjName.visible = false
|
79
|
+
@txtNewProjName.visible = false
|
80
|
+
end
|
81
|
+
|
82
|
+
def show_new_proj_entry
|
83
|
+
@lblNewProjName.visible = true
|
84
|
+
@txtNewProjName.visible = true
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
2
|
+
# Author: Chris Liaw <chrisliaw@antrapol.com>
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
module GvcsFx
|
20
|
+
module EventHandler
|
21
|
+
|
22
|
+
def install_handler
|
23
|
+
handle_workspace_add
|
24
|
+
handle_workspace_selection_changed
|
25
|
+
end
|
26
|
+
|
27
|
+
def handle_workspace_add
|
28
|
+
|
29
|
+
register(Listener::Event[:workspace_added], Proc.new do |opts|
|
30
|
+
|
31
|
+
# change display from landing to details
|
32
|
+
# NO workspace selected yet so hold
|
33
|
+
#show_details
|
34
|
+
refresh_workspace_list
|
35
|
+
|
36
|
+
end)
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def handle_workspace_selection_changed
|
41
|
+
register(Listener::Event[:workspace_selection_changed], Proc.new do |opts|
|
42
|
+
|
43
|
+
refresh_details
|
44
|
+
|
45
|
+
#case @shownTab
|
46
|
+
#when :state
|
47
|
+
# refresh_tab_state
|
48
|
+
#when :logs
|
49
|
+
# refresh_tab_logs
|
50
|
+
#when :ignoreRules
|
51
|
+
# refresh_tab_ignore_rules
|
52
|
+
#end
|
53
|
+
|
54
|
+
end)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
2
|
+
# Author: Chris Liaw <chrisliaw@antrapol.com>
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
|
18
|
+
java_import javafx.scene.control.ContextMenu
|
19
|
+
|
20
|
+
require_relative "main_win_controller"
|
21
|
+
|
22
|
+
module GvcsFx
|
23
|
+
class FloatWinController
|
24
|
+
include JRubyFX::Controller
|
25
|
+
fxml "float.fxml"
|
26
|
+
|
27
|
+
def initialize
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def show_context_menu(evt)
|
32
|
+
init_ctxmenu.show(@imgFloat, evt.screen_x, evt.screen_y)
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
private
|
37
|
+
def init_ctxmenu
|
38
|
+
|
39
|
+
if @ctx.nil?
|
40
|
+
|
41
|
+
@ctx = ContextMenu.new
|
42
|
+
mnuItems = []
|
43
|
+
@mnuMain = javafx.scene.control.MenuItem.new("G-VCS")
|
44
|
+
@mnuMain.on_action do |evt|
|
45
|
+
stage = javafx.stage.Stage.new
|
46
|
+
stage.title = "G-VCS"
|
47
|
+
#stage.initModality(javafx.stage.Modality::WINDOW_MODAL)
|
48
|
+
#stage.initOwner(@imgFloat.scene.window)
|
49
|
+
ctrl = MainWinController.load_into(stage)
|
50
|
+
stage.show
|
51
|
+
end
|
52
|
+
mnuItems << @mnuMain
|
53
|
+
|
54
|
+
@mnuExit = javafx.scene.control.MenuItem.new("Exit")
|
55
|
+
@mnuExit.on_action do |evt|
|
56
|
+
@imgFloat.scene.window.close
|
57
|
+
end
|
58
|
+
mnuItems << @mnuExit
|
59
|
+
|
60
|
+
@ctx.items.add_all(mnuItems)
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
@ctx
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# Copyright (C) 2020 Chris Liaw <chrisliaw@antrapol.com>
|
2
|
+
# Author: Chris Liaw <chrisliaw@antrapol.com>
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
|
18
|
+
java_import javafx.scene.control.Alert
|
19
|
+
|
20
|
+
module GvcsFx
|
21
|
+
module FxAlert
|
22
|
+
|
23
|
+
def fx_alert_info(msg, title = "Information", owner = nil)
|
24
|
+
dlg = Alert.new(Alert::AlertType::INFORMATION)
|
25
|
+
#dlg.header_text = msg
|
26
|
+
dlg.title = title
|
27
|
+
lbl = javafx.scene.control.Label.new(msg)
|
28
|
+
lbl.wrap_text = true
|
29
|
+
dlg.dialog_pane.content = lbl
|
30
|
+
dlg.header_text = nil
|
31
|
+
#dlg.content_text = msg
|
32
|
+
dlg.init_modality(javafx.stage.Modality::WINDOW_MODAL)
|
33
|
+
dlg.init_owner(owner) if not owner.nil?
|
34
|
+
dlg.show_and_wait
|
35
|
+
end
|
36
|
+
|
37
|
+
def fx_alert_error(msg, title = "Error", owner = nil)
|
38
|
+
dlg = Alert.new(Alert::AlertType::ERROR)
|
39
|
+
#dlg.header_text = msg
|
40
|
+
dlg.title = title
|
41
|
+
lbl = javafx.scene.control.Label.new(msg)
|
42
|
+
lbl.wrap_text = true
|
43
|
+
dlg.dialog_pane.content = lbl
|
44
|
+
dlg.header_text = nil
|
45
|
+
dlg.init_modality(javafx.stage.Modality::WINDOW_MODAL)
|
46
|
+
dlg.init_owner(owner) if not owner.nil?
|
47
|
+
#dlg.init_style(javafx.stage.StageStyle::UTILITY)
|
48
|
+
dlg.show_and_wait
|
49
|
+
end
|
50
|
+
|
51
|
+
def fx_alert_warning(msg, title = "Warning", owner = nil)
|
52
|
+
dlg = Alert.new(Alert::AlertType::WARNING)
|
53
|
+
#dlg.header_text = msg
|
54
|
+
lbl = javafx.scene.control.Label.new(msg)
|
55
|
+
lbl.wrap_text = true
|
56
|
+
dlg.dialog_pane.content = lbl
|
57
|
+
#dlg.content_text = msg
|
58
|
+
dlg.title = title
|
59
|
+
dlg.header_text = nil
|
60
|
+
dlg.init_modality(javafx.stage.Modality::WINDOW_MODAL)
|
61
|
+
dlg.init_owner(owner) if not owner.nil?
|
62
|
+
dlg.show_and_wait
|
63
|
+
end
|
64
|
+
|
65
|
+
def fx_alert_confirmation(msg, header = nil, title = "Confirmation", owner = nil)
|
66
|
+
|
67
|
+
dlg = javafx.scene.control.Alert.new(javafx.scene.control.Alert::AlertType::CONFIRMATION)
|
68
|
+
dlg.init_modality(javafx.stage.Modality::WINDOW_MODAL)
|
69
|
+
dlg.init_owner(owner) if not owner.nil?
|
70
|
+
dlg.title = title
|
71
|
+
dlg.header_text = header
|
72
|
+
lbl = javafx.scene.control.Label.new(msg)
|
73
|
+
lbl.wrap_text = true
|
74
|
+
dlg.dialog_pane.content = lbl
|
75
|
+
# this will make long text not shown as no wrapping is provided
|
76
|
+
#dlg.content_text = msg
|
77
|
+
|
78
|
+
#if not (opts[:custom_buttons].nil? or opts[:custom_buttons].empty?)
|
79
|
+
# cusBut = { }
|
80
|
+
# opts.each do |key,act|
|
81
|
+
# par = [act[:name]]
|
82
|
+
# par << javafx.scene.control.ButtonBar.ButtonData::CANCEL_CLOSE if act[:is_cancel]
|
83
|
+
# cusBut[javafx.scene.control.ButtonType.new(*par)] = k
|
84
|
+
|
85
|
+
# dlg.getButtonTypes.setAll(*cusBut.keys)
|
86
|
+
# end
|
87
|
+
#end
|
88
|
+
|
89
|
+
res = dlg.show_and_wait
|
90
|
+
|
91
|
+
#if not (opts[:custom_buttons].nil? or opts[:custom_buttons].empty?)
|
92
|
+
# sel = res.get
|
93
|
+
# key = cusBut[sel]
|
94
|
+
# key
|
95
|
+
#else
|
96
|
+
if res.get == javafx.scene.control.ButtonType::OK
|
97
|
+
:ok
|
98
|
+
else
|
99
|
+
:cancel
|
100
|
+
end
|
101
|
+
#end
|
102
|
+
|
103
|
+
end # fx_alert_confirmation
|
104
|
+
|
105
|
+
def fx_alert_input(title, header, content)
|
106
|
+
dlg = javafx.scene.control.TextInputDialog.new
|
107
|
+
dlg.title = title
|
108
|
+
dlg.header_text = header
|
109
|
+
dlg.content_text = content
|
110
|
+
res = dlg.show_and_wait
|
111
|
+
if res.is_present
|
112
|
+
# there is some string in the text field
|
113
|
+
[true, res.get]
|
114
|
+
else
|
115
|
+
[false, ""]
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|