mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
XX
This commit is contained in:
@@ -76,6 +76,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
AddLabelCommand = new SimpleCommand(Command_Enable, para => AddLabel());
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.InitNew();
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
base.LoadDesignerItemViewModel(designerbase);
|
||||
|
||||
@@ -36,10 +36,13 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new ConnectorInfoItemBase(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root, initNew);
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.Init(root);
|
||||
|
||||
ColorViewModel = new ColorViewModel()
|
||||
{
|
||||
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
|
||||
|
||||
@@ -36,17 +36,20 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new ConnectorLabelItem(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root);
|
||||
|
||||
ConnectorWidth = 30;
|
||||
ConnectorHeight = 30;
|
||||
base.Init(root, initNew);
|
||||
|
||||
DeleteLabelCommand = new SimpleCommand(Command_Enable, DeleteLabel);
|
||||
EditCommand = new SimpleCommand(Command_Enable, ExecuteEditCommand);
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
ConnectorWidth = 30;
|
||||
ConnectorHeight = 30;
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
base.LoadDesignerItemViewModel(designerbase);
|
||||
|
||||
@@ -48,9 +48,13 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new ConnectorPointItem(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root, initNew);
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.Init(root);
|
||||
ColorViewModel = new ColorViewModel()
|
||||
{
|
||||
LineColor = new ColorObject() { Color = Color.FromArgb(0xAA, 0x00, 0x00, 0x80) },
|
||||
|
||||
@@ -33,9 +33,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new ConnectorVertexItem(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root);
|
||||
base.Init(root, initNew);
|
||||
|
||||
DeleteVertexCommand = new SimpleCommand(Command_Enable, DeleteVertex);
|
||||
}
|
||||
|
||||
@@ -52,9 +52,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new FullyCreatedConnectorInfoItem(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root);
|
||||
base.Init(root, initNew);
|
||||
|
||||
menuOptions = new List<CinchMenuItem>();
|
||||
MenuItemCommand = new SimpleCommand(Command_Enable, ExecuteMenuItemCommand);
|
||||
@@ -62,6 +62,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.InitNew();
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
base.LoadDesignerItemViewModel(designerbase);
|
||||
|
||||
@@ -38,11 +38,12 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new DesignerItemBase(this);
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.Init(root);
|
||||
|
||||
InitConnector();
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Top));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Bottom));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Left));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Right));
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
@@ -61,17 +62,13 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
this.Icon = designer.Icon;
|
||||
this.CornerRadius = designer.CornerRadius;
|
||||
this.BorderThickness = designer.BorderThickness;
|
||||
foreach (var connector in designer.Connectors)
|
||||
{
|
||||
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
|
||||
AddConnector(fullyCreatedConnectorInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void InitConnector()
|
||||
{
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Top));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Bottom));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Left));
|
||||
connectors.Add(new FullyCreatedConnectorInfo(this.Root, this, ConnectorOrientation.Right));
|
||||
}
|
||||
|
||||
#region 属性
|
||||
|
||||
public FullyCreatedConnectorInfo FirstConnector
|
||||
|
||||
@@ -1493,17 +1493,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (!selectedConnections.Contains(connection))
|
||||
{
|
||||
DesignerItemViewModelBase sourceItem = (from item in selectedDesignerItems
|
||||
where item.Id == connection.SourceConnectorInfo.DataItem.Id
|
||||
select item).FirstOrDefault();
|
||||
|
||||
DesignerItemViewModelBase sinkItem = (from item in selectedDesignerItems
|
||||
where item.Id == connection.SinkConnectorInfoFully?.DataItem?.Id
|
||||
select item).FirstOrDefault();
|
||||
|
||||
if (sourceItem != null &&
|
||||
sinkItem != null &&
|
||||
BelongToSameGroup(sourceItem, sinkItem))
|
||||
DesignerItemViewModelBase sourceItem = selectedDesignerItems.FirstOrDefault(p => p.Id == connection.SourceConnectorInfo.DataItem.Id);
|
||||
DesignerItemViewModelBase sinkItem = selectedDesignerItems.FirstOrDefault(p => p.Id == connection.SinkConnectorInfoFully?.DataItem?.Id);
|
||||
if (sourceItem != null && sinkItem != null && BelongToSameGroup(sourceItem, sinkItem))
|
||||
{
|
||||
selectedConnections.Add(connection);
|
||||
}
|
||||
@@ -1600,11 +1592,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
if (mappingOldToNewIDs.ContainsKey(item.ParentId))
|
||||
item.ParentId = mappingOldToNewIDs[item.ParentId];
|
||||
}
|
||||
}
|
||||
items.AddRange(connectors);
|
||||
FixConnection(items);
|
||||
|
||||
}
|
||||
items.AddRange(connectors);
|
||||
DirectAddItemCommand.Execute(items);
|
||||
|
||||
FixOtherInfo(items);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -1618,7 +1610,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void FixConnection(List<SelectableDesignerItemViewModelBase> items)
|
||||
protected virtual void FixOtherInfo(List<SelectableDesignerItemViewModelBase> items)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2521,10 +2513,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
foreach (DesignerItemViewModelBase groupRoot in groups)
|
||||
{
|
||||
var children = from child in SelectedItems.OfType<DesignerItemViewModelBase>()
|
||||
where child.ParentId == groupRoot.Id
|
||||
select child;
|
||||
|
||||
var children = SelectedItems.OfType<DesignerItemViewModelBase>().Where(p => p.ParentId == groupRoot.Id);
|
||||
foreach (DesignerItemViewModelBase child in children)
|
||||
child.ParentId = Guid.Empty;
|
||||
|
||||
|
||||
@@ -36,17 +36,17 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root);
|
||||
base.Init(root, initNew);
|
||||
|
||||
this.IsGroup = true;
|
||||
this.IsHitTestVisible = true;
|
||||
}
|
||||
|
||||
protected override void InitConnector()
|
||||
protected override void InitNew()
|
||||
{
|
||||
|
||||
this.ClearConnectors();
|
||||
}
|
||||
|
||||
protected override void ExecuteEditCommand(object param)
|
||||
|
||||
@@ -42,14 +42,19 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
}
|
||||
|
||||
protected override void Init(IDiagramViewModel root)
|
||||
protected override void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
base.Init(root);
|
||||
base.Init(root, initNew);
|
||||
|
||||
SelectItemCommand = new SimpleCommand(Command_Enable, ExecuteSelectItemCommand);
|
||||
EditCommand = new SimpleCommand(Command_Enable, ExecuteEditCommand);
|
||||
}
|
||||
|
||||
protected override void InitNew()
|
||||
{
|
||||
base.InitNew();
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
base.LoadDesignerItemViewModel(designerbase);
|
||||
|
||||
@@ -29,20 +29,20 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
public SelectableViewModelBase(IDiagramViewModel root)
|
||||
{
|
||||
Init(root);
|
||||
Init(root, true);
|
||||
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
|
||||
}
|
||||
|
||||
public SelectableViewModelBase(IDiagramViewModel root, SelectableItemBase designer)
|
||||
{
|
||||
Init(root);
|
||||
Init(root, false);
|
||||
LoadDesignerItemViewModel(designer);
|
||||
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
|
||||
}
|
||||
|
||||
public SelectableViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType)
|
||||
{
|
||||
Init(root);
|
||||
Init(root, false);
|
||||
SelectableItemBase obj = SerializeHelper.DeserializeObject(serializableItem.SerializableTypeName, serializableItem.SerializableString, serializableType);
|
||||
LoadDesignerItemViewModel(obj);
|
||||
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
|
||||
@@ -66,7 +66,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return null;
|
||||
}
|
||||
|
||||
protected virtual void Init(IDiagramViewModel root)
|
||||
protected virtual void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
Root = root;
|
||||
|
||||
@@ -98,6 +98,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
|
||||
LockObjectViewModel = new LockObjectViewModel();
|
||||
|
||||
if (initNew)
|
||||
{
|
||||
InitNew();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void InitNew()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected virtual void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
@@ -158,7 +168,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _isSelected, value))
|
||||
{
|
||||
{
|
||||
//如果没有文字,失去焦点自动清除
|
||||
if (_isSelected == false && string.IsNullOrEmpty(Text))
|
||||
{
|
||||
@@ -336,7 +346,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
protected virtual void ClearText()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public virtual void ClearSelected()
|
||||
@@ -362,6 +372,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{Id}-{Text}";
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user