
* feat: make new connections * refact: context groups | feat: area detection and a bunch of small things. hate yourself for this massive commit
69 lines
2.4 KiB
Go
69 lines
2.4 KiB
Go
package ipc
|
|
|
|
import (
|
|
contextGroup "textualize/core/ContextGroup"
|
|
document "textualize/core/Document"
|
|
"textualize/entities"
|
|
"textualize/storage"
|
|
)
|
|
|
|
func (c *Channel) RequestDisconnectProcessedAreas(ancestorAreaId string, descendantAreaId string) bool {
|
|
contextGroupCollection := contextGroup.GetContextGroupCollection()
|
|
|
|
wasSuccessfulDisconnect := contextGroupCollection.DisconnectProcessedAreas(ancestorAreaId, descendantAreaId)
|
|
if wasSuccessfulDisconnect {
|
|
wasSuccessfulWrite := c.RequestSaveContextGroupCollection()
|
|
return wasSuccessfulWrite
|
|
}
|
|
return false
|
|
}
|
|
|
|
/*
|
|
If a connection already exists, then this method will default to disconnecting the two areas.
|
|
*/
|
|
func (c *Channel) RequestConnectProcessedAreas(ancestorAreaId string, descendantAreaId string) bool {
|
|
contextGroupCollection := contextGroup.GetContextGroupCollection()
|
|
|
|
doesContextGroupAlreadyExist := contextGroupCollection.DoesGroupExistBetweenProcessedAreas(ancestorAreaId, descendantAreaId)
|
|
if doesContextGroupAlreadyExist {
|
|
return c.RequestDisconnectProcessedAreas(ancestorAreaId, descendantAreaId)
|
|
}
|
|
|
|
processedAreaCollection := document.GetProcessedAreaCollection()
|
|
|
|
ancestorArea := processedAreaCollection.GetAreaById(ancestorAreaId)
|
|
descendantArea := processedAreaCollection.GetAreaById(descendantAreaId)
|
|
|
|
wasSuccessfulConnect := contextGroupCollection.ConnectProcessedAreas(*ancestorArea, *descendantArea)
|
|
if wasSuccessfulConnect {
|
|
wasSuccessfulWrite := c.RequestSaveContextGroupCollection()
|
|
return wasSuccessfulWrite
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func (c *Channel) GetSerializedContextGroups() []entities.SerializedLinkedProcessedArea {
|
|
contextGroupCollection := contextGroup.GetContextGroupCollection()
|
|
|
|
serializedContextGroups := make([]entities.SerializedLinkedProcessedArea, 0)
|
|
for _, group := range contextGroupCollection.Groups {
|
|
serializedContextGroups = append(serializedContextGroups, group.Serialize()...)
|
|
}
|
|
|
|
return serializedContextGroups
|
|
}
|
|
|
|
func (c *Channel) RequestSaveContextGroupCollection() bool {
|
|
contextGroupCollection := contextGroup.GetContextGroupCollection()
|
|
projectName := c.GetCurrentSession().Project.Name
|
|
|
|
serializedContextGroups := make([]entities.SerializedLinkedProcessedArea, 0)
|
|
for _, group := range contextGroupCollection.Groups {
|
|
serializedContextGroups = append(serializedContextGroups, group.Serialize()...)
|
|
}
|
|
|
|
successfulWrite := storage.GetDriver().WriteContextGroupCollection(serializedContextGroups, projectName)
|
|
return successfulWrite
|
|
}
|