This commit is contained in:
艾竹
2023-03-25 11:59:31 +08:00
parent 8a2c742ec4
commit b36bd4b228
35 changed files with 344 additions and 296 deletions

View File

@@ -42,11 +42,10 @@ namespace AIStudio.Wpf.DiagramDesigner
return new MediaDesignerItem(this);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
base.Init(root, initNew);
ClearConnectors();
//propertyChangedSubscription = WhenPropertyChanged.Where(o => o.ToString() == "Left" || o.ToString() == "Top" || o.ToString() == "ItemWidth" || o.ToString() == "ItemHeight").Subscribe(ChangeImageElement);
//connectorsChangedSubscription = WhenConnectorsChanged.Subscribe(OnConnectorsChanged);
@@ -55,6 +54,10 @@ namespace AIStudio.Wpf.DiagramDesigner
BuildMenuOptions();
}
protected override void InitNew()
{
this.ClearConnectors();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
@@ -62,12 +65,7 @@ namespace AIStudio.Wpf.DiagramDesigner
if (designerbase is MediaDesignerItem designer)
{
this.Icon = designer.Icon;
foreach (var connector in designer.Connectors)
{
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
AddConnector(fullyCreatedConnectorInfo);
}
this.Icon = designer.Icon;
}
}

View File

@@ -41,15 +41,31 @@ namespace AIStudio.Wpf.DiagramDesigner
return new ImageDesignerItem(this);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
base.Init(root, initNew);
this.PropertyChanged += ImageItemViewModel_PropertyChanged;
BuildMenuOptions();
}
protected override void InitNew()
{
base.InitNew();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);
if (designerbase is ImageDesignerItem designer)
{
this.Icon = designer.Icon;
Suffix = Path.GetExtension(this.Icon).ToLower();
}
}
private void ImageItemViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(ItemWidth) || e.PropertyName == nameof(ItemHeight) || e.PropertyName == nameof(ResizeMargin) || e.PropertyName == nameof(ClipMode))
@@ -65,6 +81,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
#region
private string _suffix;
public string Suffix
{
@@ -113,24 +130,9 @@ namespace AIStudio.Wpf.DiagramDesigner
SetProperty(ref _clipMode, value);
}
}
#endregion
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);
if (designerbase is ImageDesignerItem designer)
{
this.Icon = designer.Icon;
Suffix = Path.GetExtension(this.Icon).ToLower();
foreach (var connector in designer.Connectors)
{
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
AddConnector(fullyCreatedConnectorInfo);
}
}
}
private void BuildMenuOptions()
{
menuOptions = new ObservableCollection<CinchMenuItem>();

View File

@@ -16,10 +16,13 @@ namespace AIStudio.Wpf.DiagramDesigner
Top = Math.Max(0, location.Y - ItemHeight / 2);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
base.Init(root, initNew);
}
protected override void InitNew()
{
this.ClearConnectors();
this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true));

View File

@@ -95,14 +95,19 @@ namespace AIStudio.Wpf.DiagramDesigner
return new LogicalGateDesignerItemBase(this);
}
protected override void Init(IDiagramViewModel root)
{
protected override void Init(IDiagramViewModel root, bool initNew)
{
ShowRotate = false;
ShowArrow = false;
AddInputCommand = new SimpleCommand(Command_Enable, para => ExecuteAddInput(para));
AddOutputCommand = new SimpleCommand(Command_Enable, para => ExecuteAddOutput(para));
base.Init(root);
base.Init(root, initNew);
}
protected override void InitNew()
{
base.InitNew();
}
private void BuildMenuOptions()

View File

@@ -36,13 +36,17 @@ namespace AIStudio.Wpf.DiagramDesigner
return new MediaDesignerItem(this);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
base.Init(root, initNew);
BuildMenuOptions();
}
}
protected override void InitNew()
{
base.InitNew();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
@@ -51,12 +55,6 @@ namespace AIStudio.Wpf.DiagramDesigner
if (designerbase is MediaDesignerItem designer)
{
this.Icon = designer.Icon;
foreach (var connector in designer.Connectors)
{
FullyCreatedConnectorInfo fullyCreatedConnectorInfo = new FullyCreatedConnectorInfo(this.Root, this, connector);
AddConnector(fullyCreatedConnectorInfo);
}
}
}

View File

@@ -16,15 +16,17 @@ namespace AIStudio.Wpf.DiagramDesigner
Top = Math.Max(0, location.Y - ItemHeight / 2);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
this.ClearConnectors();
this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true));
base.Init(root, initNew);
}
protected override void InitNew()
{
ItemWidth = 5;
ItemHeight = 5;
this.ClearConnectors();
this.AddConnector(new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true));
}
private bool _showConnectors = false;

View File

@@ -98,16 +98,19 @@ namespace AIStudio.Wpf.DiagramDesigner
Top = ConnectionPoints.Min(p => p.Y);
}
protected override void Init(IDiagramViewModel root)
{
protected override void Init(IDiagramViewModel root, bool initNew)
{
MenuItemCommand = new SimpleCommand(Command_Enable, ExecuteMenuItemCommand);
base.Init(root);
this.ClearConnectors();
base.Init(root, initNew);
BuildMenuOptions();
}
protected override void InitNew()
{
this.ClearConnectors();
}
private void ExecuteMenuItemCommand(object obj)
{
ShowConnectors = (obj as CinchMenuItem).IsChecked;

View File

@@ -35,12 +35,15 @@ namespace AIStudio.Wpf.DiagramDesigner
return new TextDesignerItem(this);
}
protected override void Init(IDiagramViewModel root)
protected override void Init(IDiagramViewModel root, bool initNew)
{
base.Init(root);
base.Init(root, initNew);
CustomText = true;
CustomText = true;
}
protected override void InitNew()
{
this.ItemWidth = 150;
this.ClearConnectors();
}