Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gargantext-ihaskell
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
gargantext-ihaskell
Commits
d26ecb02
Commit
d26ecb02
authored
Jul 17, 2021
by
David Davó
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finished reimplementing class hierarchy
parent
c05da985
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
53 additions
and
29 deletions
+53
-29
Common.hs
...y/ihaskell-widgets/src/IHaskell/Display/Widgets/Common.hs
+1
-0
Dropdown.hs
...idgets/src/IHaskell/Display/Widgets/Selection/Dropdown.hs
+2
-4
RadioButtons.hs
...ts/src/IHaskell/Display/Widgets/Selection/RadioButtons.hs
+1
-1
Select.hs
...-widgets/src/IHaskell/Display/Widgets/Selection/Select.hs
+6
-2
SelectMultiple.hs
.../src/IHaskell/Display/Widgets/Selection/SelectMultiple.hs
+5
-1
SelectionRangeSlider.hs
...Haskell/Display/Widgets/Selection/SelectionRangeSlider.hs
+5
-3
SelectionSlider.hs
...src/IHaskell/Display/Widgets/Selection/SelectionSlider.hs
+6
-4
ToggleButtons.hs
...s/src/IHaskell/Display/Widgets/Selection/ToggleButtons.hs
+1
-1
Singletons.hs
...askell-widgets/src/IHaskell/Display/Widgets/Singletons.hs
+1
-0
Types.hs
...ay/ihaskell-widgets/src/IHaskell/Display/Widgets/Types.hs
+25
-13
No files found.
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Common.hs
View file @
d26ecb02
...
@@ -48,6 +48,7 @@ pattern B64Value = S.SB64Value
...
@@ -48,6 +48,7 @@ pattern B64Value = S.SB64Value
pattern
ImageFormat
=
S
.
SImageFormat
pattern
ImageFormat
=
S
.
SImageFormat
pattern
BoolValue
=
S
.
SBoolValue
pattern
BoolValue
=
S
.
SBoolValue
pattern
Options
=
S
.
SOptions
pattern
Options
=
S
.
SOptions
pattern
OptionalIndex
=
S
.
SOptionalIndex
pattern
Index
=
S
.
SIndex
pattern
Index
=
S
.
SIndex
pattern
SelectionHandler
=
S
.
SSelectionHandler
pattern
SelectionHandler
=
S
.
SSelectionHandler
pattern
Tooltips
=
S
.
STooltips
pattern
Tooltips
=
S
.
STooltips
...
...
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/Dropdown.hs
View file @
d26ecb02
...
@@ -36,9 +36,7 @@ mkDropdown :: IO Dropdown
...
@@ -36,9 +36,7 @@ mkDropdown :: IO Dropdown
mkDropdown
=
do
mkDropdown
=
do
-- Default properties, with a random uuid
-- Default properties, with a random uuid
wid
<-
U
.
random
wid
<-
U
.
random
let
selectionAttrs
=
defaultSelectionWidget
"DropdownView"
"DropdownModel"
let
widgetState
=
WidgetState
$
defaultSelectionWidget
"DropdownView"
"DropdownModel"
dropdownAttrs
=
(
ButtonStyle
=::
DefaultButton
)
:&
RNil
widgetState
=
WidgetState
$
selectionAttrs
<+>
dropdownAttrs
stateIO
<-
newIORef
widgetState
stateIO
<-
newIORef
widgetState
...
@@ -55,6 +53,6 @@ instance IHaskellWidget Dropdown where
...
@@ -55,6 +53,6 @@ instance IHaskellWidget Dropdown where
comm
widget
val
_
=
comm
widget
val
_
=
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
Just
(
Number
index
)
->
do
Just
(
Number
index
)
->
do
void
$
setField'
widget
Index
(
Sci
.
coefficient
index
)
void
$
setField'
widget
OptionalIndex
(
Just
$
Sci
.
coefficient
index
)
triggerSelection
widget
triggerSelection
widget
_
->
pure
()
_
->
pure
()
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/RadioButtons.hs
View file @
d26ecb02
...
@@ -52,6 +52,6 @@ instance IHaskellWidget RadioButtons where
...
@@ -52,6 +52,6 @@ instance IHaskellWidget RadioButtons where
comm
widget
val
_
=
comm
widget
val
_
=
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
Just
(
Number
index
)
->
do
Just
(
Number
index
)
->
do
void
$
setField'
widget
Index
(
Sci
.
coefficient
index
)
void
$
setField'
widget
OptionalIndex
(
Just
$
Sci
.
coefficient
index
)
triggerSelection
widget
triggerSelection
widget
_
->
pure
()
_
->
pure
()
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/Select.hs
View file @
d26ecb02
...
@@ -19,6 +19,7 @@ import Control.Monad (void)
...
@@ -19,6 +19,7 @@ import Control.Monad (void)
import
Data.Aeson
import
Data.Aeson
import
Data.IORef
(
newIORef
)
import
Data.IORef
(
newIORef
)
import
qualified
Data.Scientific
as
Sci
import
qualified
Data.Scientific
as
Sci
import
Data.Vinyl
(
Rec
(
..
),
(
<+>
))
import
IHaskell.Display
import
IHaskell.Display
import
IHaskell.Eval.Widgets
import
IHaskell.Eval.Widgets
...
@@ -35,7 +36,10 @@ mkSelect :: IO Select
...
@@ -35,7 +36,10 @@ mkSelect :: IO Select
mkSelect
=
do
mkSelect
=
do
-- Default properties, with a random uuid
-- Default properties, with a random uuid
wid
<-
U
.
random
wid
<-
U
.
random
let
widgetState
=
WidgetState
$
defaultSelectionWidget
"SelectView"
"SelectModel"
let
selectionAttrs
=
defaultSelectionWidget
"SelectView"
"SelectModel"
selectAttrs
=
(
Rows
=::
Just
5
)
:&
RNil
widgetState
=
WidgetState
$
selectionAttrs
<+>
selectAttrs
stateIO
<-
newIORef
widgetState
stateIO
<-
newIORef
widgetState
...
@@ -52,6 +56,6 @@ instance IHaskellWidget Select where
...
@@ -52,6 +56,6 @@ instance IHaskellWidget Select where
comm
widget
val
_
=
comm
widget
val
_
=
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
Just
(
Number
index
)
->
do
Just
(
Number
index
)
->
do
void
$
setField'
widget
Index
(
Sci
.
coefficient
index
)
void
$
setField'
widget
OptionalIndex
(
Just
$
Sci
.
coefficient
index
)
triggerSelection
widget
triggerSelection
widget
_
->
pure
()
_
->
pure
()
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/SelectMultiple.hs
View file @
d26ecb02
...
@@ -20,6 +20,7 @@ import Data.Aeson
...
@@ -20,6 +20,7 @@ import Data.Aeson
import
Data.IORef
(
newIORef
)
import
Data.IORef
(
newIORef
)
import
qualified
Data.Scientific
as
Sci
import
qualified
Data.Scientific
as
Sci
import
qualified
Data.Vector
as
V
import
qualified
Data.Vector
as
V
import
Data.Vinyl
(
Rec
(
..
),
(
<+>
))
import
IHaskell.Display
import
IHaskell.Display
import
IHaskell.Eval.Widgets
import
IHaskell.Eval.Widgets
...
@@ -36,7 +37,10 @@ mkSelectMultiple :: IO SelectMultiple
...
@@ -36,7 +37,10 @@ mkSelectMultiple :: IO SelectMultiple
mkSelectMultiple
=
do
mkSelectMultiple
=
do
-- Default properties, with a random uuid
-- Default properties, with a random uuid
wid
<-
U
.
random
wid
<-
U
.
random
let
widgetState
=
WidgetState
$
defaultMultipleSelectionWidget
"SelectMultipleView"
"SelectMultipleModel"
let
multipleSelectionAttrs
=
defaultMultipleSelectionWidget
"SelectMultipleView"
"SelectMultipleModel"
selectMultipleAttrs
=
(
Rows
=::
Just
5
)
:&
RNil
widgetState
=
WidgetState
$
multipleSelectionAttrs
<+>
selectMultipleAttrs
stateIO
<-
newIORef
widgetState
stateIO
<-
newIORef
widgetState
...
...
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/SelectionRangeSlider.hs
View file @
d26ecb02
...
@@ -37,9 +37,11 @@ mkSelectionRangeSlider :: IO SelectionRangeSlider
...
@@ -37,9 +37,11 @@ mkSelectionRangeSlider :: IO SelectionRangeSlider
mkSelectionRangeSlider
=
do
mkSelectionRangeSlider
=
do
wid
<-
U
.
random
wid
<-
U
.
random
let
selectionAttrs
=
defaultMultipleSelectionWidget
"SelectionRangeSliderView"
"SelectionRangeSliderModel"
let
selectionAttrs
=
defaultMultipleSelectionWidget
"SelectionRangeSliderView"
"SelectionRangeSliderModel"
widgetState
=
WidgetState
$
rput
(
Indices
=::
[
0
,
0
])
$
selectionAttrs
<+>
selectionRangeSliderAttrs
=
(
Orientation
=::
HorizontalOrientation
)
(
Orientation
=::
HorizontalOrientation
)
:&
(
ReadOut
=::
True
)
:&
RNil
:&
(
ContinuousUpdate
=::
True
)
:&
RNil
widgetState
=
WidgetState
$
rput
(
Indices
=::
[
0
,
0
])
$
selectionAttrs
<+>
selectionRangeSliderAttrs
stateIO
<-
newIORef
widgetState
stateIO
<-
newIORef
widgetState
...
...
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/SelectionSlider.hs
View file @
d26ecb02
...
@@ -35,10 +35,12 @@ type SelectionSlider = IPythonWidget 'SelectionSliderType
...
@@ -35,10 +35,12 @@ type SelectionSlider = IPythonWidget 'SelectionSliderType
mkSelectionSlider
::
IO
SelectionSlider
mkSelectionSlider
::
IO
SelectionSlider
mkSelectionSlider
=
do
mkSelectionSlider
=
do
wid
<-
U
.
random
wid
<-
U
.
random
let
selectionAttrs
=
defaultSelectionWidget
"SelectionSliderView"
"SelectionSliderModel"
let
selectionAttrs
=
defaultSelectionNonemptyWidget
"SelectionSliderView"
"SelectionSliderModel"
widgetState
=
WidgetState
$
selectionAttrs
<+>
selectionSliderAttrs
=
(
Orientation
=::
HorizontalOrientation
)
(
Orientation
=::
HorizontalOrientation
)
:&
(
ReadOut
=::
True
)
:&
RNil
:&
(
ContinuousUpdate
=::
True
)
:&
RNil
widgetState
=
WidgetState
$
selectionAttrs
<+>
selectionSliderAttrs
stateIO
<-
newIORef
widgetState
stateIO
<-
newIORef
widgetState
...
...
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Selection/ToggleButtons.hs
View file @
d26ecb02
...
@@ -58,6 +58,6 @@ instance IHaskellWidget ToggleButtons where
...
@@ -58,6 +58,6 @@ instance IHaskellWidget ToggleButtons where
comm
widget
val
_
=
comm
widget
val
_
=
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
case
nestedObjectLookup
val
[
"state"
,
"index"
]
of
Just
(
Number
index
)
->
do
Just
(
Number
index
)
->
do
void
$
setField'
widget
Index
(
Sci
.
coefficient
index
)
void
$
setField'
widget
OptionalIndex
(
Just
$
Sci
.
coefficient
index
)
triggerSelection
widget
triggerSelection
widget
_
->
pure
()
_
->
pure
()
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Singletons.hs
View file @
d26ecb02
...
@@ -55,6 +55,7 @@ singletons
...
@@ -55,6 +55,7 @@ singletons
| BoolValue
| BoolValue
| Options
| Options
| Index
| Index
| OptionalIndex
| SelectionHandler
| SelectionHandler
| Tooltips
| Tooltips
| Icons
| Icons
...
...
ihaskell-display/ihaskell-widgets/src/IHaskell/Display/Widgets/Types.hs
View file @
d26ecb02
...
@@ -134,11 +134,11 @@ type StringClass = DescriptionWidgetClass :++ ['S.StringValue, 'S.Placeholder]
...
@@ -134,11 +134,11 @@ type StringClass = DescriptionWidgetClass :++ ['S.StringValue, 'S.Placeholder]
type
BoolClass
=
DescriptionWidgetClass
:++
[
'S
.
BoolValue
,
'S
.
Disabled
,
'S
.
ChangeHandler
]
type
BoolClass
=
DescriptionWidgetClass
:++
[
'S
.
BoolValue
,
'S
.
Disabled
,
'S
.
ChangeHandler
]
type
SelectionClass
=
DOMWidgetClass
:++
[
'S
.
Options
,
'S
.
Index
,
'S
.
Disabled
,
type
SelectionClass
=
DescriptionWidgetClass
:++
[
'S
.
Options
,
'S
.
OptionalIndex
,
'S
.
Disabled
,
'S
.
SelectionHandler
]
'S
.
Description
,
'S
.
SelectionHandler
]
type
MultipleSelectionClass
=
DOMWidgetClass
:++
[
'S
.
Options
,
'S
.
Indices
,
'S
.
Disabled
,
type
SelectionNonemptyClass
=
DescriptionWidgetClass
:++
[
'S
.
Options
,
'S
.
Index
,
'S
.
Disabled
,
'S
.
SelectionHandler
]
'S
.
Description
,
'S
.
SelectionHandler
]
type
MultipleSelectionClass
=
DescriptionWidgetClass
:++
[
'S
.
Options
,
'S
.
Indices
,
'S
.
Disabled
,
'S
.
SelectionHandler
]
type
IntClass
=
DescriptionWidgetClass
:++
[
'S
.
IntValue
,
'S
.
ChangeHandler
]
type
IntClass
=
DescriptionWidgetClass
:++
[
'S
.
IntValue
,
'S
.
ChangeHandler
]
...
@@ -189,6 +189,7 @@ type family FieldType (f :: Field) :: * where
...
@@ -189,6 +189,7 @@ type family FieldType (f :: Field) :: * where
FieldType
'S
.
BoolValue
=
Bool
FieldType
'S
.
BoolValue
=
Bool
FieldType
'S
.
Options
=
SelectionOptions
FieldType
'S
.
Options
=
SelectionOptions
FieldType
'S
.
Index
=
Integer
FieldType
'S
.
Index
=
Integer
FieldType
'S
.
OptionalIndex
=
Maybe
Integer
FieldType
'S
.
SelectionHandler
=
IO
()
FieldType
'S
.
SelectionHandler
=
IO
()
FieldType
'S
.
Tooltips
=
[
Text
]
FieldType
'S
.
Tooltips
=
[
Text
]
FieldType
'S
.
Icons
=
[
Text
]
FieldType
'S
.
Icons
=
[
Text
]
...
@@ -315,14 +316,14 @@ type family WidgetFields (w :: WidgetType) :: [Field] where
...
@@ -315,14 +316,14 @@ type family WidgetFields (w :: WidgetType) :: [Field] where
WidgetFields
'C
h
eckBoxType
=
BoolClass
:++
'[
'S
.
Indent
]
WidgetFields
'C
h
eckBoxType
=
BoolClass
:++
'[
'S
.
Indent
]
WidgetFields
'T
o
ggleButtonType
=
BoolClass
:++
[
'S
.
Icon
,
'S
.
ButtonStyle
]
WidgetFields
'T
o
ggleButtonType
=
BoolClass
:++
[
'S
.
Icon
,
'S
.
ButtonStyle
]
WidgetFields
'V
a
lidType
=
BoolClass
:++
'[
'S
.
ReadOutMsg
]
WidgetFields
'V
a
lidType
=
BoolClass
:++
'[
'S
.
ReadOutMsg
]
WidgetFields
'D
r
opdownType
=
SelectionClass
:++
'[
'S
.
ButtonStyle
]
WidgetFields
'D
r
opdownType
=
SelectionClass
WidgetFields
'R
a
dioButtonsType
=
SelectionClass
WidgetFields
'R
a
dioButtonsType
=
SelectionClass
WidgetFields
'S
e
lectType
=
SelectionClass
WidgetFields
'S
e
lectType
=
SelectionClass
:++
'[
'S
.
Rows
]
WidgetFields
'S
e
lectionSliderType
=
Selection
Class
:++
'[
'S
.
Orientation
]
WidgetFields
'S
e
lectionSliderType
=
Selection
NonemptyClass
:++
'[
'S
.
Orientation
,
'S
.
ReadOut
,
'S
.
ContinuousUpdate
]
WidgetFields
'S
e
lectionRangeSliderType
=
MultipleSelectionClass
:++
'[
'S
.
Orientation
]
WidgetFields
'S
e
lectionRangeSliderType
=
MultipleSelectionClass
:++
'[
'S
.
Orientation
,
'S
.
ReadOut
,
'S
.
ContinuousUpdate
]
WidgetFields
'T
o
ggleButtonsType
=
WidgetFields
'T
o
ggleButtonsType
=
SelectionClass
:++
[
'S
.
Tooltips
,
'S
.
Icons
,
'S
.
ButtonStyle
]
SelectionClass
:++
[
'S
.
Tooltips
,
'S
.
Icons
,
'S
.
ButtonStyle
]
WidgetFields
'S
e
lectMultipleType
=
MultipleSelectionClass
WidgetFields
'S
e
lectMultipleType
=
MultipleSelectionClass
++
'[
S
.
Rows
]
WidgetFields
'I
n
tTextType
=
IntClass
:++
[
'S
.
Disabled
,
'S
.
ContinuousUpdate
,
'S
.
StepInt
]
WidgetFields
'I
n
tTextType
=
IntClass
:++
[
'S
.
Disabled
,
'S
.
ContinuousUpdate
,
'S
.
StepInt
]
WidgetFields
'B
o
undedIntTextType
=
BoundedIntClass
:++
[
'S
.
Disabled
,
'S
.
ContinuousUpdate
,
'S
.
StepInt
]
WidgetFields
'B
o
undedIntTextType
=
BoundedIntClass
:++
[
'S
.
Disabled
,
'S
.
ContinuousUpdate
,
'S
.
StepInt
]
WidgetFields
'I
n
tSliderType
=
WidgetFields
'I
n
tSliderType
=
...
@@ -449,6 +450,9 @@ instance ToPairs (Attr 'S.BoolValue) where
...
@@ -449,6 +450,9 @@ instance ToPairs (Attr 'S.BoolValue) where
instance
ToPairs
(
Attr
'S
.
Index
)
where
instance
ToPairs
(
Attr
'S
.
Index
)
where
toPairs
x
=
[
"index"
.=
toJSON
x
]
toPairs
x
=
[
"index"
.=
toJSON
x
]
instance
ToPairs
(
Attr
'S
.
OptionalIndex
)
where
toPairs
x
=
[
"index"
.=
toJSON
x
]
instance
ToPairs
(
Attr
'S
.
Options
)
where
instance
ToPairs
(
Attr
'S
.
Options
)
where
toPairs
x
=
toPairs
x
=
case
_value
x
of
case
_value
x
of
...
@@ -657,23 +661,31 @@ defaultBoolWidget viewName modelName = defaultDescriptionWidget viewName modelNa
...
@@ -657,23 +661,31 @@ defaultBoolWidget viewName modelName = defaultDescriptionWidget viewName modelNa
-- | A record representing a widget of the _Selection class from IPython
-- | A record representing a widget of the _Selection class from IPython
defaultSelectionWidget
::
FieldType
'S
.
ViewName
->
FieldType
'S
.
ModelName
->
Rec
Attr
SelectionClass
defaultSelectionWidget
::
FieldType
'S
.
ViewName
->
FieldType
'S
.
ModelName
->
Rec
Attr
SelectionClass
defaultSelectionWidget
viewName
modelName
=
defaultDOMWidget
viewName
modelName
<+>
selectionAttrs
defaultSelectionWidget
viewName
modelName
=
defaultDescriptionWidget
viewName
modelName
<+>
selectionAttrs
where
selectionAttrs
=
(
Options
=::
OptionLabels
[]
)
:&
(
OptionalIndex
=::
Nothing
)
:&
(
Disabled
=::
False
)
:&
(
SelectionHandler
=::
return
()
)
:&
RNil
-- | A record representing a widget of the _SelectionNonempty class from IPython
defaultSelectionNonemptyWidget
::
FieldType
'S
.
ViewName
->
FieldType
'S
.
ModelName
->
Rec
Attr
SelectionNonemptyClass
defaultSelectionNonemptyWidget
viewName
modelName
=
defaultDescriptionWidget
viewName
modelName
<+>
selectionAttrs
where
where
selectionAttrs
=
(
Options
=::
OptionLabels
[]
)
selectionAttrs
=
(
Options
=::
OptionLabels
[]
)
:&
(
Index
=::
0
)
:&
(
Index
=::
0
)
:&
(
Disabled
=::
False
)
:&
(
Disabled
=::
False
)
:&
(
Description
=::
""
)
:&
(
SelectionHandler
=::
return
()
)
:&
(
SelectionHandler
=::
return
()
)
:&
RNil
:&
RNil
-- | A record representing a widget of the _MultipleSelection class from IPython
-- | A record representing a widget of the _MultipleSelection class from IPython
defaultMultipleSelectionWidget
::
FieldType
'S
.
ViewName
->
FieldType
'S
.
ModelName
->
Rec
Attr
MultipleSelectionClass
defaultMultipleSelectionWidget
::
FieldType
'S
.
ViewName
->
FieldType
'S
.
ModelName
->
Rec
Attr
MultipleSelectionClass
defaultMultipleSelectionWidget
viewName
modelName
=
defaultD
OM
Widget
viewName
modelName
<+>
mulSelAttrs
defaultMultipleSelectionWidget
viewName
modelName
=
defaultD
escription
Widget
viewName
modelName
<+>
mulSelAttrs
where
where
mulSelAttrs
=
(
Options
=::
OptionLabels
[]
)
mulSelAttrs
=
(
Options
=::
OptionLabels
[]
)
:&
(
Indices
=::
[]
)
:&
(
Indices
=::
[]
)
:&
(
Disabled
=::
False
)
:&
(
Disabled
=::
False
)
:&
(
Description
=::
""
)
:&
(
SelectionHandler
=::
return
()
)
:&
(
SelectionHandler
=::
return
()
)
:&
RNil
:&
RNil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment