Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
148
Issues
148
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
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
purescript-gargantext
Commits
f5c319e9
Commit
f5c319e9
authored
Nov 05, 2019
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Graph] some sigma fixes to current code
But still doesn't compile...
parent
bac07dd6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
38 deletions
+56
-38
Graph.purs
src/Gargantext/Components/Graph.purs
+18
-16
Sigmax.purs
src/Gargantext/Hooks/Sigmax.purs
+38
-22
No files found.
src/Gargantext/Components/Graph.purs
View file @
f5c319e9
...
@@ -38,8 +38,8 @@ type Props sigma fa2 =
...
@@ -38,8 +38,8 @@ type Props sigma fa2 =
)
)
type Last sigma fa2 =
type Last sigma fa2 =
( graph :: R.Ref (Maybe Graph)
)
( graph :: R.Ref (Maybe Graph)
, fa2 :: R.Ref (Maybe fa2)
)
, fa2 :: R.Ref (Maybe fa2)
, sigma :: R.Ref (Maybe sigma)
, sigma :: R.Ref (Maybe sigma)
)
)
...
@@ -60,22 +60,24 @@ graphCpt = R.hooksComponent "Graph" cpt
...
@@ -60,22 +60,24 @@ graphCpt = R.hooksComponent "Graph" cpt
Right (container /\ sigma) -> do
Right (container /\ sigma) -> do
Sigma.setSettings sigma props.sigmaSettings
Sigma.setSettings sigma props.sigmaSettings
good <- addRenderer container sigma
good <- addRenderer container sigma
if good
if good then
setLast last props
setLast last props
else
pure unit
R.setRef sigmaRef sigma
R.setRef sigmaRef sigma
R.useEffect3 props.graph props.forceAtlas2Settings props.sigmaSettings
R.useEffect3 props.graph props.forceAtlas2Settings props.sigmaSettings $
startSigma ref props.sigmaRef props.sigmaSettings props.forceAtlas2Settings props.graph
startSigma ref props.sigmaRef props.sigmaSettings props.forceAtlas2Settings props.graph
pure $ RH.div { ref: containerRef, style: {height: "95%"} } []
pure $ RH.div { ref: containerRef, style: {height: "95%"} } []
graphEffect {graph, forceAtlas2Settings, sigmaSettings} =
graphEffect {graph, forceAtlas2Settings, sigmaSettings} =
R.useEffect3 graph forceAtlas2Settings sigmaSettings $
R.useEffect3 graph forceAtlas2Settings sigmaSettings do
pure unit
setLast :: forall s fa2. R.Ref (Record (Last s fa2)) -> R.Record (Props s fa2) -> Effect Unit
setLast :: forall s fa2. R.Ref (Record (Last s fa2)) -> R.Record (Props s fa2) -> Effect Unit
setLast ref {graph, forceAtlas2Settings, sigmaSettings} = R.setRef ref new where
setLast ref {graph, forceAtlas2Settings, sigmaSettings} = R.setRef ref new
new = {graph, fa2: forceAtlas2Settings, sigma: sigmaSettings}
where
new = {graph, fa2: forceAtlas2Settings, sigma: sigmaSettings}
assertContainer :: R.Ref (Nullable DOM.Element) -> Either (Effect Unit) DOM.Element
assertContainer :: R.Ref (Nullable DOM.Element) -> Either (Effect Unit) DOM.Element
assertContainer ref = note err $ R.readNullableRef containerRef where
assertContainer ref = note err $ R.readNullableRef containerRef where
...
@@ -92,8 +94,8 @@ addRenderer container sigma = do
...
@@ -92,8 +94,8 @@ addRenderer container sigma = do
Right r -> pure True
Right r -> pure True
Left e -> log2 "[G.C.Graph.graph] Error creating renderer: " e *> pure False
Left e -> log2 "[G.C.Graph.graph] Error creating renderer: " e *> pure False
either err Right $ Sigma.sigma where
--
either err Right $ Sigma.sigma where
err = log2 "[G.C.Graph.graph] Error initialising sigma: "
--
err = log2 "[G.C.Graph.graph] Error initialising sigma: "
useSigma containerRef props = do
useSigma containerRef props = do
sigmaRef <- R2.nothingRef
sigmaRef <- R2.nothingRef
...
@@ -107,8 +109,8 @@ useSigma containerRef props = do
...
@@ -107,8 +109,8 @@ useSigma containerRef props = do
log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
R.setRef sigmaRef sigma
R.setRef sigmaRef sigma
pure $ Sigma.killSigma sigma
pure $ Sigma.killSigma sigma
h sigma = do
--
h sigma = do
log2 "[G.C.Graph.graph] Found sigma!" sigma
--
log2 "[G.C.Graph.graph] Found sigma!" sigma
pure sigmaRef
pure sigmaRef
where
where
named msg = "[G.C.Graph.useSigma] " <> msg
named msg = "[G.C.Graph.useSigma] " <> msg
...
@@ -117,7 +119,7 @@ useSigma containerRef props = do
...
@@ -117,7 +119,7 @@ useSigma containerRef props = do
assertAddRenderer sigma container =
--
assertAddRenderer sigma container =
type SigmaSettings =
type SigmaSettings =
( animationsTime :: Number
( animationsTime :: Number
...
...
src/Gargantext/Hooks/Sigmax.purs
View file @
f5c319e9
...
@@ -49,7 +49,8 @@ cleanupFirst sigma =
...
@@ -49,7 +49,8 @@ cleanupFirst sigma =
startSigma :: forall settings faSettings n e. R.Ref (Nullable Element) -> R.Ref (Maybe Sigma) -> settings -> faSettings -> Graph n e -> R.Hooks Unit
startSigma :: forall settings faSettings n e. R.Ref (Nullable Element) -> R.Ref (Maybe Sigma) -> settings -> faSettings -> Graph n e -> R.Hooks Unit
startSigma ref sigmaRef settings forceAtlas2Settings graph = do
startSigma ref sigmaRef settings forceAtlas2Settings graph = do
{sigma, isNew} <- useSigma ref settings sigmaRef
--{sigma, isNew} <- useSigma ref settings sigmaRef
sigmaRef <- useSigma
useCanvasRenderer ref sigma
useCanvasRenderer ref sigma
if isNew then do
if isNew then do
...
@@ -72,22 +73,33 @@ startSigma ref sigmaRef settings forceAtlas2Settings graph = do
...
@@ -72,22 +73,33 @@ startSigma ref sigmaRef settings forceAtlas2Settings graph = do
useSigma :: R.Hooks (R.Ref (Maybe Sigma))
useSigma :: R.Hooks (R.Ref (Maybe Sigma))
useSigma = do
useSigma = do
sigmaRef <- R2.nothingRef
sRef <- R2.nothingRef
R.useEffectOnce $ delay unit $ \_ ->
cleanupRef <- R.useRef Seq.empty
case Sigma.sigma unit of
sigmaRef <- R.useRef $ Just { sigma: sRef, cleanup: cleanupRef }
Left e ->
log2 "[G.H.Sigmax.useSigma] Error initialising sigma: " e
R.useEffectOnce $ delay unit $ \_ -> do
let s = Sigma.sigma unit
case s of
Left e -> do
pure $ log2 "[G.H.Sigmax.useSigma] Error initialising sigma: " e
Right sigma -> do
Right sigma -> do
log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
_ <- pure $ log2 "[G.H.Sigmax.useSigma] Sigma initialised: " sigma
R.setRef sigmaRef (Sigma.sigma unit)
_ <- pure $ R.setRef sRef $ Just sigma
pure $ pure unit
updateSettings :: forall settings. Sigma -> R.Ref settings -> settings -> Effect Bool
pure sigmaRef
updateSettings :: forall settings. Eq settings => Sigma -> R.Ref settings -> settings -> Effect Boolean
updateSettings sigma ref settings =
updateSettings sigma ref settings =
| (R.readRef ref) == settings = pure false
if (R.readRef ref) == settings then
| otherwise
pure false
= Sigma.setSettings sigma settings
else
*> pure $ R.setRef ref settings
case R.readRef sigma.sigma of
*> pure true
Nothing -> pure false
Just s -> do
_ <- Sigma.setSettings s settings
_ <- pure $ R.setRef ref settings
pure true
-- | Manages a renderer for the sigma
-- | Manages a renderer for the sigma
useCanvasRenderer :: R.Ref (Nullable Element) -> Sigma -> R.Hooks Unit
useCanvasRenderer :: R.Ref (Nullable Element) -> Sigma -> R.Hooks Unit
...
@@ -112,14 +124,18 @@ useCanvasRenderer container sigma =
...
@@ -112,14 +124,18 @@ useCanvasRenderer container sigma =
errorKillingMsg = "[useCanvasRenderer] Error killing renderer:"
errorKillingMsg = "[useCanvasRenderer] Error killing renderer:"
killedMsg = "[useCanvasRenderer] Killed renderer"
killedMsg = "[useCanvasRenderer] Killed renderer"
createSigma :: forall settings err. settings -> Effect (Either err Sigma.Sigma)
--createSigma :: forall settings err. settings -> Effect (Either err Sigma.Sigma)
createSigma settings = do
--createSigma settings = do
log2 "[useSigma] Initializing sigma with settings" settings
-- log2 "[useSigma] Initializing sigma with settings" settings
ret <- Sigma.sigma {settings}
-- ret <- Sigma.sigma unit
ret <$ logStatus ret
-- case ret of
where
-- Left err -> pure unit
logStatus (Left err) = log2 "[useSigma] Error during sigma creation:" err
-- Right s -> Sigma.setSettings s settings
logStatus (Right x) = log2 "[useSigma] Initialised sigma successfully:" x
-- _ <- pure $ logStatus ret
-- pure ret
-- where
-- logStatus (Left err) = log2 "[useSigma] Error during sigma creation:" err
-- logStatus (Right x) = log2 "[useSigma] Initialised sigma successfully:" x
cleanupSigma :: Sigma -> String -> Effect Unit
cleanupSigma :: Sigma -> String -> Effect Unit
cleanupSigma sigma context = traverse_ kill (readSigma sigma)
cleanupSigma sigma context = traverse_ kill (readSigma sigma)
...
...
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