Authoring Tools Framework 3.8 RELEASED - kaisu1986/ATF GitHub Wiki

日本語蚳は、英語に続く埌半をご芧ください。

The Authoring Tools Framework (ATF) 3.8 Release has many improvements and bug fixes, reflecting six months of work and client contributions. There are several major feature additions and some breaking changes. Please see below for details.

Table of Contents

Top New Features

  • Released as open source on GitHub on March 10, 2014, under the Apache 2.0 license.
  • Integrated a huge amount of Windows Presentation Foundation (WPF) support from a client.
  • Added a Skin Editor that allows you to edit the current skin and create new skin files. Try it out in the Timeline Editor sample app, by using the View -> Edit Skin command.
  • Added a History Lister feature to visually display and manipulate the undo/redo stack. Try it out in the Circuit Editor sample app, by using the Window -> History command.
  • The Circuit Editor now supports circuit template references to external files. See the context menu commands on the Template Lister.
  • Improvements to property editing and the DomPropertyEditor sample app.



Compatibility with Windows 8 and 8.1

All of our sample apps appear to run correctly on Windows 8 and Windows 8.1. The only real issue that we are aware of is that the Direct2D performance has more variation when compared to Windows 7, and is generally worse, with Windows 8.1 performing better than 8 overall. We expect the performance to improve over time as newer drivers are released. Additionally, with ATF 3.8, we’ve started seeing an intermittent failure of the automated functional tests where an automation service exception occurs and causes the test run to hang. This only applies to Windows 8/8.1, and all sample apps can be run manually with no issues.

Breaking Changes

  • The following methods, properties, and types have been marked as obsolete in past releases of ATF and have been removed since ATF 3.7 was released internally to Sony Computer Entertainment, but before being released on GitHub. So this list of removed obsolete items does not affect any client on GitHub. (This list excludes items in the internal Legacy directory.)
    • Sce.Atf.Selection – Removed Toggle(IEnumerable items). Use ToggleRange instead.
    • Sce.Atf.VectorMath.Matrix3F – Removed the property M, as it was useless and simply returned 'this'.
    • Sce.Atf.VectorMath.Matrix4F
      • Removed GetTranslation(). Please use the Translation property instead.
      • Removed the property M, as it was useless and simply returned 'this'.
    • Sce.Atf.Applications.CommandInfo – Removed the property Shortcut. Use the property Shortcuts instead.
    • Sce.Atf.Applications.ScriptingService – Removed SetObject() and RemoveObject(). Use SetVariable() and RemoveVariable() instead.
    • Sce.Atf.Controls.Adaptable.Graphs.Annotation – Removed Synchronize(). This method was empty and did nothing.
    • Sce.Atf.Controls.Adaptable.Graphs.Element – Removed Synchronize(). This method was empty and did nothing.
    • Sce.Atf.Controls.Adaptable.Graphs.GroupPin – Removed Synchronize(). This method was empty and did nothing.
    • Sce.Atf.Applications.AutoDocumentService – Removed the constructor that took a Form. Use IMainWindow instead.
    • Sce.Atf.Applications.MainFormTitleService – Removed this class. Use MainWindowTitleService, which works against IMainWindow.
    • Sce.Atf.Applications.ShoutOutputService – Moved this sample code to the ModelViewer sample app.
    • Sce.Atf.Applications.PaletteService – Removed the constructor that takes a Form. Use IMainWindow instead.
    • Sce.Atf.Applications.SettingsService – Removed the constructor that takes a Form. Use IMainWindow instead.
    • Sce.Atf.Applications.StandardFileExitCommand – Removed the constructor that takes a Form. Use IMainWindow instead.
    • Sce.Atf.Applications.UnhandledExceptionService – Removed the constructor that takes a Form. Use IMainWindow instead.
    • Sce.Atf.Applications.SourceControlCommands – Removed the property CheckoutOnEdit. Use CheckoutOnEditBehavior instead.
    • Sce.Atf.ChartUtil – Removed one of the DrawHorizontalScale() overloaded methods and one of the DrawVerticalScale() overloaded methods. Use a different overload and pass in 0.0f for the 'minimumGraphStep'.
    • Sce.Atf.Controls.Adaptable.Graphs.D2dSubCircuitRenderer – Removed FloatingPinNodeHeight and FloatingPinNodeWidth. Use CircuitGroupPinInfo.FloatingPinBoxHeight and CircuitGroupPinInfo.FloatingPinBoxWidth instead.
    • Sce.Atf.CustomFileDialog
      • Removed InitialDirectory. This property had no effect. Please see ForcedInitialDirectory to make the dialog box open at a particular directory.
      • Removed UserControl. This property was no longer supported.
    • Sce.Atf.Controls.FloatInputControl – Removed TickFrequency. This property had no effect.
    • Sce.Atf.Controls.IntInputControl – Removed TickFrequency. This property had no effect.
    • Sce.Atf.Controls.Timelines.Direct2D.D2dTimelineControl – Removed GetBoundingRect() that has the 'events' parameter. This parameter has always been ignored; please use the GetBoundingRect() version with no parameters.
    • Sce.Atf.Perforce.PerforceService – Removed the ShowErrors property. This property had no effect. Please see Sce.Atf.Outputs, OutputService, and ErrorDialogService for displaying errors and warnings.








  • Most math classes, like Vec3F, have had their ToString() methods improved to work with European languages and to have more consistent behavior. The main problem was that in languages that use a ‘,’ as a decimal point, then a ‘;’ should be used to separate numbers in a list. Previously, a ‘,’ was hard-coded to separate numbers in a list regardless of the current culture setting. Addresses https://github.com/SonyWWS/ATF/issues/5 .
    • Added StringUtil.GetNumberListSeparator(IFormatProvider).
    • FloatArrayConverter: now uses the appropriate number separator (e.g., ',' or ';') depending on the current culture.
      • Past behavior: ToString() is not valid for European cultures for either persistence or GUI. In English, it’s valid for persistence and GUI. ToString(null, null) is same as ToString(). ToString(“G”, englishCulture) is valid for GUIs in English. Parentheses are added. Float is converted to double prior to printing. ToString(“G”, euroCulture) is not valid for GUIs anywhere. Parentheses are added. Float is converted to double prior to printing. ToString(“R”, CultureInfo.InvariantCulture) is valid for persistence everywhere. Parentheses are added. Float is converted to double prior to printing.
      • Current behavior: ToString() is valid for GUI in all cultures. In English, it’s valid for persistence and GUI. ToString(null, null) is the same as ToString(). ToString(“G”, englishCulture) is valid for GUIs in English. ToString(“G”, euroCulture) is valid for GUIs in Europe. ToString(“R”, CultureInfo.InvariantCulture) is valid for persistence everywhere.














  • Sce.Atf.Controls.Adaptable.Graphs.D2dGraphRenderer had a misspelled property. MaxiumEdgeThickness has been renamed to MaximumEdgeThickness.
  • Removed Sce.Atf.Dom.Template's abstract Model property, and made the Target property abstract. Clients with derived classes can rename their 'Model' property to 'Target' to fix the compile error. The reason for this breaking change is because the Target and Model properties were the same thing, and so made the class unnecessarily complicated.
  • PerforceService.RequestProcessed mistakenly had a setter and it has been removed. It has always been impossible for the caller to know if all Perforce requests have been processed since that knowledge has always been internal to PerforceService.
  • The following breaking changes have been made to Sce.Atf.Controls.PropertyEditing.LongEnumEditor:
    • By default, the user can no longer enter arbitrary text into the combo box. This behavior is probably what is most expected. To allow for arbitrary user input, set TextEditEnabled to true.
    • Initialize(string[]) is now an explicit interface implementation, as it always should have been. Please use DefineEnum(string[]) instead.
    • DropDownHeight has been removed. Please use MaxDropDownItems instead to specify the maximum height of the list of dropped down items.
    • DefineEnum(string[] names, int[] values) has been removed because the ‘values’ parameter was always ignored.
    • The public static event EnumSelectionChanging has been removed because the client that requested it never used it and because the listener would only know the selected item, but not the LongEnumEditor object that was being edited, so we think this event is not generally useful enough.
  • IFileDialogService calls now return a Sce.Atf.Applications.FileDialogResult instead of System.Windows.Forms.DialogResult, to remove the dependency on WinForms.



Detailed List of Changes by Category



Open Source/Documentation

  • Moved all ATF wiki documentation from SHIP to GitHub.
  • Added Apache v2.0 license in License.txt and updated the copyright notices in the source code and test scripts.
  • Removed code marked obsolete. See Breaking Changes for details.
  • Changed the license and confidentiality text on our PDF documentation (and the source Word docs) to match our open source license. Updated the copyright text.
  • Added GitHub's required README.md. *.md stands for Markdown wiki format, but it's still just a text file. It is based on our ReadMe.txt file but reflects the differences in the public repository structure.
  • Put in an easy way to disable ATF usage logging for the public GitHub repository. We can use the PUBLIC pre-processing directive for these kinds of differences now.
  • Removed ATFProgrammer_Guide_exported_from_wiki.pdf because 1) it's available publicly on GitHub, 2) it has formatting errors, 3) and it's really large.
  • Removed links to SHIP from documentation.
  • Removed the old Samples/LevelEditor directory and the ReadMe.txt file that it contained, that told people where to find LevelEditor. This just causes confusion to potential new clients.
  • Updated the 'Supported Tools' section of ATF-GettingStarted.doc to say that .NET Framework 4 and C# 4 are required and VS2013 is supported.
  • Improved comments and added missing comments for publicly visible types and members.
  • Added ATF_API-Reference.chm file created by Sandcastle. Also added a project to build the chm for the ATF API.


Changes Imported from GitHub

  • Removed redundant null check in Pair.cs. (lioncash)
  • Fixed ToString() formatting for BezierCurve and Seg2F. (lioncash)
  • Fixed an exception message within a DomNodePropertyMatch constructor. (lioncash)
Circuits
  • Fixed a bug with the Bounds property of circuit elements which caused the StandardLayoutCommands to not be able to align on the right or bottom sides correctly.
  • Fixed a crash when adding wires in CreateTestCircuitProgrammatically() by ensuring group's pins are visible after the addition (by default they were hidden).
  • Make CircuitValidator no longer require the adapted DomNode also support ReferenceValidator (CTE does not need ReferenceValidator because its wires are set up very differently and specially handled.)
  • Added comments to the Circuit Editor's Editor class.
  • Circuit templates: Fixed the bug that the original template UUID was not recovered if you demoted a template reference instance to a copy instance, then promoted to a reference instance again, which would fail to pop up the replacing or adding template dialog .
  • Initial implementation of supporting circuit template folders that can reside in other documents:
    • Added CategoryUniqueIdValidator to support local-unique ids, necessary since the template tree hierarchy now has mixed internal and external (imported from other document) nodes, where the node IDs in external documents may collide with the IDs of internal nodes
    • DomNode: added SetTag()/GetTag() to tag nodes at runtime; need to investigate the dynamic (mutable) DOM attribute approach for the same purpose
    • All reference instances to templates are resolved by document-agnostic GUIDs, and currently GUID-based resolving is done only in the circuit-customized reader and writer
  • If a template folder is External it now displays a special icon to indicate the external nature.
  • Template library external folder: some UI nuance handling for template lister to disallow moving around any item inside an external template folder; disallow cross-document moving ; disallow prompting items to an external folder directly, instead they are added to root folder if the selected folder is an external folder.
  • Hovering over the external template folder shows the template file path.
  • Added support to load/display/save files that have missing external templates; these missing templates are displayed with special style.
  • Added resource package_error.png, to be used for a circuit element rendering that references a missing external template.
  • Added a “Rescan Template Documents” context-menu command in the Templates Lister to reload all referenced template documents in the Template Lister.
  • Fixed a problem with output group pin initial index value setting in UpdateGroupPins. It was mistakenly using m_inputs.Count, it now correctly uses m_outputs.Count.
  • Circuit element: Added InputPin(index) and OutputPin(index) helper methods.
  • Circuit templates are now only editable in the document that owns the template.
  • Fixed a problem where it wasn't possible to connect a referenced group pin to any other pins from the UI.
  • Fixed a typo: GroupingCommands.DefaultPinOderStyle property was renamed to DefaultPinOrderStyle.
  • ViewingContext.ConstrainBounds() fixed a crash when there are no layout constraints. (Creature Editor graph view does not have the usual grid adaptor.)
  • CircuitEditingContext added 3 virtual protected methods: OnObjectInserted(), OnObjectRemoved(), OnObjectChanged(), so derived class can raise ItemInserted, ItemRemoved, ItemChanged events respectively.
  • CircuitEditor: fixed a crash when creating a connection from an internal template sub-node to an external node.
  • FSM Editor and StateChart editors: fixed a problem where a temporary wire was not visible, to indicate making a connection between elements.
  • Circuit external templates: prune old templates at the end of "Rescan Template Documents" processing.
  • Circuit Editor: added back now obsolete "typeRef" attribute (now replaced by "guidRef") for template type reference in schema file so we can read older circuit documents that have templates; added conversion code so the older version of circuit document will be saved in the new format.
  • Fixed Circuit Editor’s alignment commands to work correctly with groups and elements. Fixed the three implementations of ILayoutContext that were ignoring the BoundsSpecified flags.
  • Circuit groups: fixed a bug where the circuit group would get a little bit taller each time it was resized to be wider.
  • Fixed a problem with node placement offset, by moving code that computes the y-range of floating pins from D2dSubgraphAdapter.GetBounds(items)to ViewingContext.GetBounds(). The former method is for selected items so it is not appropriate to always including y-range of all floating pins ; the latter is for all items, so it is appropriate to include when the the view is associated with a group editor.
  • Circuit editor: fixed the cursor icon that displays when trying to create wires between elements in a group, in the expanded view.
  • Fixed dangling wires crash caused by deleting nodes of an externally referenced template.
  • GroupInstance and ModuleInstance: Added Input|OutputPin(index) overrides to handle missing types.


Direct2D

  • Added D2DFactory.MeasureText to measure the width of a string drawn in a specified font.
  • Cleaned up and added functionality to D2dGraphics.
  • Adding support to render to a WIC renderTarget.
  • Adding support for D2dGeometry and D2dGeometrySink.
  • Add hit-testing methods for D2dGeometry.
  • D2DFactory: Allow for the creation of a TextLayout using a transformation matrix.
  • Added the D2dGeometry Bounds property.
  • Fixed memory leak in D2dTextLayout and D2dTextFormat.
  • In D2dTextFormat, use the correct FontHeight calculation.
  • Improve handling of label and tip management to deal with long marker labels.
  • D2dCircuitRenderer:
    • Added properties for customizing element drawing: RoundedBorder, TitleBackgroundFilled, PinDrawStyle.
    • Added protected virtual methods for custom element drawing: GetElementTitle and GetElementDisplayName.
    • Fixed a crash when the brush associated with an element type is not a D2dLinearGradientBrush.
    • Added the optional document registry parameter in its constructor, used to clear the element type cache when a document is removed.
    • GetElementSizeInfo: Added optional title parameter to include customized title text size for element size computation
    • ElementTypeInfo: Added Title field so if cached title is different the cached data will be invalidated to trigger the element size recalculation. Caching the title value is necessary because Creature Editor may have different titles for the same type of elements
    • Modified the height calculation for expanded group rendering.
  • Updated MousePick in DraggingContext getter of D2dGraphEdgeEditAdapter because derived classes may need to access the mouse hit record.
  • D2dGraphEdgeEditAdapter: Added OverRouteCursor, FromPlaceCursor, ToPlaceCursor, and InadmissibleCursor for customizing edge editing cursors
  • D2dGraphAdapter: Fixed a problem with the GetBounds() method that was causing the reported width and height to be scaled incorrectly.


Property Editing

  • Added a new custom button called OverlayButton.
  • PropertyGridView shows the reset button for the currently selected property.
  • PropertyGrid now has a Reset All button.
  • Refactored and added more functionality to PropertyEditingCommands. The context menu now has the following items:
    • Copy Property
    • Paste Property
    • Reset Property
    • Copy All
    • Paste All
    • Reset All
    • ViewInTextEditor
  • Fixed a one pixel off drawing error PropertyGridView.
  • Removed OnPaint and OnBackColorChanged methods in PropertyEditingControl
  • PropertyEditingControl: fixed a problem reported by a client (but that I couldn't reproduce) where if you clicked the drop-down button on a property (to show the custom editor) twice, then the second time the editor wouldn't show. The fix is safe, because in my tests m_dropDownForm.Visible was already false and the fix is to set it to false.
  • PropertyGridView now handles arrow and tab keys.
  • Enter key moves focus to the next input box for the following UITypeEditors:
    • NumericTupleEditor
    • NumericMatrixEditor
    • ArrayEditor
  • EmbeddedCollectionEditor:
    • Fixed a bug where if an item were added and then removed within the same transaction, the two events would not cancel each other.
    • If the ObservableContext did not raise an ItemInserted or ItemRemoved event in response to the user pressing the '+' or '-' buttons, then previously, the items could not be inserted or removed; but now, the list of items will always be updated.
  • LongEnumEditor: Completely rewritten. Can now display images. The reset button will restore the property to its original value. The following breaking changes have been made:
    • By default, the user can no longer enter arbitrary text into the combo box. This behavior is probably what is most expected. To allow for arbitrary user input, set TextEditEnabled to true.
    • Initialize(string[]) is now an explicit interface implementation, as it always should have been. Please use DefineEnum(string[]) instead.
    • DropDownHeight has been removed. Please use MaxDropDownItems instead to specify the maximum height of the list of dropped down items.
    • This overload has been removed: public void DefineEnum(string[] names, int[] values) because the ‘values’ parameter was always ignored.
    • The public static event EnumSelectionChanging has been removed because the client that requested it never used it and because the listener would only know the selected item, but not the LongEnumEditor object that was being edited, so we think this event is not generally useful enough.
  • NumericTextBox: On mouse click, selects the content of the input box in the property editor.
  • DomPropertyEditor sample: Added a new "Level" property to the Orc and demonstrate displaying the enum value as an int or a string.


Skinning

  • Bug fix: Toolbar button highlight and toggle status was broken when applying non-default skin.
  • Fixed a few issues with CustomColorTable and specify more overrides in sample skin.
  • Updated Dark.skn for more uniform skinning.
  • Support skinning on all UITypeEditors.
  • Disabled SetFont in PropertyView as it caused SkinService to throw an exception due to cloning a disposed font.
  • Added FormNcRenderer to render the non-client area (title bar, form border, caption buttons, form icon, and title text).
  • Added skinning support for the title bar, and added title bar skin to Dark.skn and Light.skn.
  • Created SkinEditor and added support for the editor UI, saving and loading skins, property descriptors for skin style objects.
  • Fixed a crash when the skin file setting is not set.
  • Added ActiveSkinFile property to SkinningService. If this property is not null, launching the Skin Editor will auto-load this skin for editing.
  • Removed the empty Classic.skn skin file.
  • Fixed skinning issues with ColorPicker: initial colors were not set properly, and some radio button text was cropped.
  • Changed the Brush used for drawing Text property of the TreeControl from SystemBrushes.WindowText to ItemRenderer.TextBrush so skins can be applied to it.
  • SkinService: Disabled the Load and Revert commands when the skin editor is running, so that the skin editor is always editing the active skin and to avoid a more complicated user interface. Did a little bit of refactoring. The static internal 'Instance' property wasn't needed any more, so it was removed.


Source Control

  • PerforceService.GetInfo() - if 'fstat' p4 command fails, do not attempt to print an error message if none have been provided.
  • Updated the Perforce .NET libraries to address the Heartbleed bug. http://www.perforce.com/blog/140422/heartbleed-vulnerability-update-patched-perforce-clients-now-available
  • PerforceService: addressed multi-thread access issues and did a lot of clean-up. Specifically:
    • ConnectionManager: put in guards on the P4API.NET objects since they can only be accessed by one thread at a time.
    • FileInfo: got rid of this "register request" idea because it added a lot of overhead in terms of code (requiring the PerforceRequestQueue class). The benefit that this feature provided was to always return "status unknown" if there was a pending Perforce server request for this file. I think it's OK to simply use the last known status in this situation.
    • PerforceRequest: removed unused properties on this internal class.
    • PerforceRequestQueue: removed this internal class entirely. It didn't seem to add necessary functionality.
    • Rewrote the background thread to use an event triggering system rather than a 2-second polling system. The logic became simpler and I think the UI will be more responsive this way and the performance might be a bit better, too.
    • Put in locks on the shared objects that are accessed by both the GUI thread and the worker thread.
    • When there are multiple Perforce requests pending on the worker thread, they are now batched up, and then the Perforce server is queried for all of the related files at once. Previously, each pending request generated a separate query to the Perforce server. Querying the status of hundreds or thousands of files should be much more efficient now.
  • PerforceService ConnectionManager now handles exceptions in ValidateConnection().
  • Added Atf.Subversion project, which implements ISourceControlService using Subversion.
  • Removed the old P4.Net \ThirdParty libraries. These have been replaced by P4API.Net since ATF 3.7.
WPF Enhancements
  • Documented below, in Appendix A: ATF 3.8 Release Notes WPF Supplement.
Other
  • ConsoleTextBox (used in the IronPython window, for example) can now process text containing multiple commands.
  • Added an ATF logo and icon that we got from a graphic artist. The logo is now used in the Help -> About screen. The icon is used to represent the sample applications in the title bar and in the Windows taskbar.
  • Added EnumerableUtil.ForEachWhileTrue to enumerate over a collection while a specified condition is true.
  • Cartesian2dCanvas.cs: placed common code for drawing ticks into a private method.
  • MathUtil: Fixed NullReferenceException in Clamp method when value parameter is null.
  • Added HistoryLister, a visual list of the undo/redo stack. The user can click on the list to undo or redo a large number of commands. The maximum number of commands visible is a user-editable property. The default is 150, and the minimum is 10. Added this to several sample applications.
  • ATF ThreadSafeProgressDialog - Handle the rare case of the parent dialog being disposed before the thread's Run() method finishes, by adding a check for m_parent.Owner == null in the "finally" block of the Run() method.
  • Provided a Shell type drag drop interface to a drag drop action. Calling the right methods on a form makes it show the icons from the shell (so the images when you drag a file over explorer for example), but also allows you to attach your own image to a drag drop action when initiating a drag drop. (Used by Metrics.)
  • DefaultTabCommands: fixed a problem where sub-document windows (like circuit group windows) could cause a crash, because the control's description was an illegal path name (e.g., "Untitled:Group").
  • Most math classes, like Vec3F, have had their ToString() methods improved to work with European languages and to have more consistent behavior. The main problem was that in languages that use a ‘,’ as a decimal point, then a ‘;’ should be used to separate numbers in a list. Previously, a ‘,’ was hard-coded to separate numbers in a list regardless of the current culture setting. Addresses https://github.com/SonyWWS/ATF/issues/5 . See Breaking Changes for more information about the behavior.
  • Updated to SharpDX 2.5.0 Stable release.
  • Reworded the recent HistoryLister's user preference text.
  • Added ColorUtil.Lerp(), EnumerableUtil.IndexOf(), and a new AttributeUtils class to Atf.Core.
  • Minor breaking change: Sce.Atf.Controls.Adaptable.Graphs.D2dGraphRenderer had a misspelled property. MaxiumEdgeThickness has been renamed to MaximumEdgeThickness.
  • CustomColorTable: fixed four typos that were causing the wrong settable properties to be used in the non-settable properties.
  • Removed Sce.Atf.Dom.Template's abstract Model property, and made the Target property abstract. Clients with derived classes can rename their 'Model' property to 'Target' to fix the compile error. The reason for this breaking change is because the Target and Model properties were the same thing, and so made the class unnecessarily complicated.
  • Made some LINQ-related performance optimizations.
  • Due to a recent change in PropertyEditingControl, the DrawingEditableValue getter is obsolete. It was always returning false. It is now marked as obsolete.
  • Added KeyPressEventArgs and PreviewKeyDownEventArgs for Atf.Gui.Input.
  • DefaultTabCommands: added a customization point so that clients can specify which docked Controls should have these commands ("Copy Full Path" and "Open Containing Folder") available on the tabs.
  • In EnumerableUtil's IndexOf extension, use default equality comparer instead of throwing ArgumentNullException.
  • Marked DevilImageLoader as obsolete and removed its usage from ImageLoaderRegistry because of memory corruption problems. We have other image loaders that handle all of the common image file formats. Made DdsCompressor use DdsImageLoader instead of DevilImageLoader.
  • https://github.com/SonyWWS/ATF/issues/9
  • Collada schema file: removed the !DOCTYPE element because it was causing a seemingly harmless (but annoying) XML exception in XmlSchemaTypeLoader.Load(string) related to "DTD processing" in the .NET XmlSchemaSet. I couldn't find a better fix. This was one of the more minor issues reported in https://github.com/SonyWWS/ATF/issues/9 .
  • Updated the CodeEditor sample to make it use the UnhandledExceptionService component.
  • Sce.Atf.Adaptation.Adapter: fixed a problem with GetDecorators() where the same object could be returned twice, if the Adaptee could be adapted to the same object as the Adapter. Added a unit test to demonstrate the problem and prove that the fix works. Corrected some comments relating to IDecoratable.
  • DomNode: Made the Copy() method also copy the ChildInfo. Previously, the ChildInfo (which describes how the parent DomNode considers this current DomNode) would be null until the parent is set. This is OK for all nodes except the root DomNode, which requires a ChildInfo in order to be persisted. So now, root DomNodes can be persisted even if they are copies.
  • ListViewAdapter: Fixed an exception "An item with the same key has already been added" if the same DomNode insertion was observed multiple times. This case was rare but possible.
  • ColorPicker: made the error messages localizable.
  • Added AutoScaleMode to ColorPicker so it scales with Font size.
  • Updated namespace Sce.Atf.DragDrop to Sce.Atf to prevent conflicts with System.Windows namespace.
  • Added TransactionReporter, a DomNodeAdapter that reports the final "cleaned-up" DOM changes that happen during a transaction, without duplicate attribute changes, for example.
  • Added Sce.Atf.AssemblyBannerAttribute to allow specification of a banner image for an assembly.
  • Added Atf.Gui.CustomizeAttribute (and derived Sce.Atf.Controls.PropertyEditing.PropertyView.CustomizeAttribute from it).
  • Cloned Scea.Editors.Commands classes to Atf.Gui.Commands. Cloned classes are not related to their Scea counterparts.
  • Added bool property DocumentClientInfo.AllowStandardFileCommands, providing the option to prevent any registered IDocumentClient from having standard file commands automatically added for its document type.
  • Added RecentDocumentCommands.MaxPathLength.get, to enable paths displayed in the root file menu to be truncated.
  • Fixed bug in WeifenLuo.WinFormsUI.Docking library, where dock panels with no icon specified, and were setting 'ShowIcon' to false, were displaying a Windows placeholder icon, when any dock panel was auto-hidden.
  • Fixed exception in AutoHideStripBase when GetTabStripRectangle is called for a pane whose dock state is Unknown.
  • Added DefaultExtension property to DocumentClientInfo. If the editor supports multiple extensions, setting the default extension will stop ATF from prompting the user to choose the extension, when creating a new file.
  • DomNode: added a Copy(DomNode) method as a convenience.
  • DomNode: made a subtle change that allows callers of GetLocalAttribute() to know whether an attribute is at its default value or was set to a value that happens to equal its default value. This change allows client code, such as in Santa Monica Studio's Creature Editor, from ATF 3.5 and earlier to use GetLocalAttribute() as they expected.
  • Moved GetPhysicalMemoryMB() from AtfUsageLogger.cs to Kernel32.cs and changed its access level from private to public.
  • WinFormsUtil: added UpdateBounds(), which will update a Rectangle given BoundsSpecified flags.
  • Statechart Editor: fixed a long-standing problem with the location of child states that are pasted into their parent states.
  • Initialize main form title with product name for sample apps (CircuitEditor, FsmEditor & StatechartEditor) to avoid blank title bar when no document is opened at app launch.
  • UsingDirect2D sample app: Minor change to the info on the title bar, to make the text more readable. (Added a couple spaces and some periods.)
  • Improved exception handling in legacy FileExplorer sample.



Appendix A: ATF 3.8 Release Notes WPF Supplement

This section describes the changes made as part of the integration of ATG's WPF implementation into ATF 3.8. It is broken down by assembly. The changes to assemblies other than Atf.Gui.Wpf are non-breaking. (Breaking changes to those assemblies are described in the main ATF 3.8 release notes.) For Atf.Gui.Wpf, many of the modifications and deletions may be breaking changes for existing WPF applications, so please review them carefully. If this release has broken your code, please create an issue at https://github.com/SonyWWS/ATF/issues .

Atf.Core Added the following new classes:

  • ArgParser: This replaces the one in Scea.Utilities, which has been marked Obsolete.
  • IObservableCollection: Interface shorthand for observable collections. Combines IList, INotifyPropertyChanged, and INotifyCollectionChanged without adding any additional methods.
  • PropertyChangedEventArgsCollection: Special collection for PropertyChangedEventArgs: ensures no matching args sets are added
  • Adaptation\BindingAdapterObject: CustomTypeDescriptor object that adapts an IAdaptable object and provides a customized set of property descriptors for binding
  • Dom\ObservableDomNodeAdapter: DomNodeAdapter that provides property change notifications
  • Dom\ObservableDomNodeListAdapter: DomNodeListAdapter that provides property change notifications
  • Dom\ObservableDomPropertyAttribute: Attribute used on properties of DomNodeAdapters derived from ObservableDomNodeAdapter. When placed on a property, the ObservableDomNodeAdapter will raise NotifyPropertyChanged events for this property when the corresponding attribute changes.
Atf.Gui Added the following new classes:
  • AssemblyBannerAttribute: Attribute to allow specification of a banner image for an assembly
  • EnumUtil: Static utility methods for working with enums
  • ObservableUtil: Utilities to use strongly typed property changed notifications for INotifyPropertyChanged
  • Applications\DirectoryWatcherService: Service to watch for changes to directories
  • Applications\ICommandService: Interface for service that presents commands in menu and toolbar controls. Now works with WPF and WinForms apps.
  • Applications\IDirectoryWatcherService: Interface for a service that watches for changes to files within a directory
  • Applications\IHelpContext: Interface for data objects that provide context sensitive help via schema annotations
  • Applications\ILastHitAware: Interface to keep track of the last item hit
  • Applications\IMessageBoxService: Interface for displaying a message box without depending on the (WinForms/WPF) implementation details.
  • Applications\Listers\FilteredTreeView: Wrapper for an ITreeView which provides filtering
  • Applications\Listers\IndependentFilteredTreeView: Filtered tree view with an independent ISelectionContext from the wrapped TreeView
  • Applications\MenuInfo: Container for menu information including Tag, Text and Description.
  • Applications\SettingsServiceBase: Service that manages user editable settings (preferences) and app settings persistence
  • Applications\VersionControl\SourceControlCommandsBase: Component that implements source control commands
  • Collections\AdaptableObservableCollection: Wraps an IObservableCollection of one type to implement IObservableCollection of another type
  • Collections\AdaptingCollection: Base class for collections that can sort or filter their contents, including FilteringCollection and OrderingCollection.
  • Collections\CollectionChangedListener: Listens for specific property changes for all items within a collection
  • Collections\LinkedListExtensions: Extension methods for LinkedList to find next and previous elements with a given value
  • Collections\ObservableCollectionAdapter: Base class for AdaptableObservableCollection
  • Collections\PriorityQueue: Queue of items sorted by priority
  • Collections\ReferenceCollectionAdapter: Collection to adapt an observable collection of references to an observable collection of their reference targets
  • Collections\SortedObservableCollection: Utility class for a sorted observable collection
  • Dom\BindingAdapter: DomNodeAdapter which adds support for data binding to adapters obtained through the IAdaptable interface.
  • Dom\DomNodeHelpAdapter: Adapts a DomNode to IHelpContext using schema annotation help keys
  • Dom\DomNodeTypeExtensions: Extension methods for working with DomNodeType
  • Dom\ListContext: Context for editing lists. Adds IInstancingContext, ILastHitAware, IObservableContext, and INotifyPropertyChanged to EditingContext
  • Dom\ObservableCustomTypeDescriptorNodeAdapter: Node adapter to get PropertyDescriptors from NodeType and other metadata
  • Models\AdapterViewModel: View model class that can adapt an adaptee and provide a bindable As property
  • Models\CheckedTreeNode: View model for a tree node with a tri-state check box
Added StandardCommandGroup.WindowLayoutItems. Added CommandInfo.ImageKey to allow specifying the icon as an object rather than a string, for use by WPF applications. Added overloads of ICommandService.RegisterCommand that take an imageKey object instead of an imageName string. Added DocumentClientInfo.NewIconKey and OpenIconKey to allow specifying the icon as an object rather than a string, for use by WPF applications.

Atf.Gui.WinForms Moved the following to the Atf.Gui assembly, but kept the same namespace:

  • Applications\FileWatcherService
  • Applications\IFileDialogService
  • Applications\StandardFileCommands
Moved HelpAboutCommand to the Atf.Gui assembly. Made the ShowHelpAbout method abstract, and provided a default implementation in Sce.Atf.WinForms.Applications.HelpAboutCommand, in the Atf.Gui.WinForms assembly. This makes the HelpAboutCommand base class platform agnostic.

Atf.Gui.Wpf Added:

  • ColorUtil: Utility functions for working with colors
  • DataContextSpy: Class used to enable ElementName and DataContext bindings on non-logical tree XAML items
  • DebugUtils: Handy classes for debugging xaml bindings during execution
  • FindFileResolver: Resolver that attempts to repair broken file system URIs with user assistance
  • IMenu: Interface for CommandService menu items.
  • IToolBar: Interface for CommandService toolbar items.
  • ResourceUtil: Provides support for using WinForms-based resources like icons and cursors in a WPF app.
  • Applications\AppearanceService: Component that manages skinning
  • Applications\AutoDocumentService: Service that auto-loads a document at application startup
  • Applications\CommandInfos: Extension methods for using Sce.Atf.Applications.CommandInfo with WPF applications
  • Applications\FileDialogService: WPF implementation of Sce.Atf.Applications.IFileDialogService
  • Applications\FIleSystemDataProvider: A DataSourceProvider which exposes a collection of ObservableFileInfo objects, representing the files in a particular directory. Changes made to the files in that directory are reflected at runtime.
  • Applications\IProtocol: Interface for providing information about a protocol and interacting with targets connected via that protocol
  • Applications\ITarget: Interface for getting target information such as name, protocol, and connection status
  • Applications\ITargetDiscovery: Interface for discovery of targets by protocol
  • Applications\ITargetService: Interface for target management
  • Applications\ITransportLayer: Interface for transport layer communication
  • Applications\Listers\ITemplatingContext: Interface for a prototyping context, which can present a tree view of its contents and create IDataObjects from them
  • Applications\MessageBoxService: Shows a Sce.Atf.Wpf.WpfMessageBox, converting Sce.Atf.Applications.* types for buttons, images, and return types to the System.Windows.* types required by Sce.Atf.Wpf.WpfMessageBox.
  • Applications\SettingsService: WPF implementation of ISettingsService to handle persistence of preferences and settings.
  • Applications\StandardEditCommands: Created from Atf.Gui.WinForms.StandardEditCommands, but without using WinForms DataObject.
  • Applications\SwitchToService: Service to handle control+tabbing between content
  • Applications\SynchronizeInvoke: Wrapper class that implements ISynchronizeInvoke for WPF applications
  • Applications\TargetService: Implementation of ITargetService for target management
  • Applications\TcpIpProtocol: Implementation of IProtocol for TCP/IP target management
  • Applications\TcpIpTarget: Implementation of ITarget for a TCP/IP target
  • Applications\TcpIpTransport\*: Handles the actual communication to a TCP/IP target
  • Applications\VersionControl\CheckInDialog: UI for checking files in to source control
  • Applications\VersionControl\ReconcileDialog: UI for reconciling offline work
  • Applications\WebServices\FeedbackForm: Form for submitting bug reports
  • Applications\WebService\ProjectMappingAttribute: This attribute can be placed on an assembly (usually in the AssemblyInfo file) to indicate the identifier that is used for mapping to a SourceForge project for version checking and bug submission. (If this attribute is not present, the AssemblyTitle attribute is used instead.)
  • Applications\WebServices\UserFeedbackService: Service that provides a UI for displaying and submitting a feedback\bug report form
  • Applications\WebServices\VersionCheck: Utility to check to see if there is an update on SourceForge
  • Applications\WebService\VersionUpdateService: Service that updates the application to the latest version on SHIP
  • Behaviors\ActivateContextBehavior: Behavior to catch mouse down events and set ATF context registry active context to the current data context of the element
  • Behaviors\ButtonPopupBehavior: Displays the associated context menu on a button click.
  • Behaviors\ContextSensitiveToolbar: Toolbar behavior to display context sensitive information based on the current selection
  • Behaviors\DataPiping: Dependency property management for DataPipes
  • Behaviors\DialogButtonWorkaround: Attached property replacement for the standard Button.IsDefault to work around a bug in WPF detailed here: http:\\www.thomasclaudiushuber.com\blog\2008\05\02\lostfocus-textbox-vs-buttons-isdefault-property\
  • Behaviors\EventToCommand: Invokes a command when a UI event trigger is activated.
  • Behaviors\InstancingDropTargetBehavior: Drag and drop target that creates a new instance of the object on drop
  • Behaviors\ItemsControlInsertionAdornerBehavior: Abstract base class for drawing insertion adorners on items controls, such as an insertion line for list controls or highlighting the drop target item on tree controls.
  • Behaviors\ItemsControlSelectFirstBehavior: Automatically selects the first item in a list-based control (such as a ComboBox) when its ItemsSource changes.
  • Behaviors\LastHitAwareBehavior: Behavior that keeps track of the last item that was clicked on or dragged over.
  • Behaviors\ListBoxScrollToEndBehavior: Behavior to autoscroll newly added list items into view
  • Behaviors\PasswordBoxBehavior: Behavior to handle the PasswordChanged event on a PasswordBox.
  • Behaviors\RoutedTemplateSelector: A DataTemplateSelector which raises the bubbling TemplateRequested routed event on the templated element when a DataTemplate must be chosen.
  • Behaviors\SelectorSelectionBehavior: Behavior to set the command that is executed when a selection changes.
  • Behaviors\TextBoxNumericBehavior: Define behaviors for numeric entry in a TextBox, including minimum and maximum value and whether to allow integer or decimal numbers.
  • Behaviors\TextBoxSelectAllBehavior: Behavior to select all text in a textbox when it receives focus
  • Behaviors\ThemeStyleBehavior: Attached Property which allows a style which uses BasedOn="" to be re-based when the application theme is dynamically changed. Normally if the BasedOn property of a style is set, once the app is loaded, changing the target style will have no effect: the derived style will remain based to the original style.
  • Collections\PriorityQuadTree: Collection of QuadNodes sorted by priority
  • Controls\Adaptable\IViewAwareContext: Interface for contexts which are aware of the view bound to them
  • Controls\BalancedWrapPanel: Positions child elements sequentially from left to right or top to bottom. When elements extend beyond the panel edge, elements are positioned in the next row or column.
  • Controls\ClippingBorder: A border that clips its contents (from Microsoft)
  • Controls\ConfirmationDialog: Displays a message with Yes\No\Cancel buttons.
  • Controls\DirectoryPicker: A directory selection control for use in property editing.
  • Controls\DomRecorderView: A user control that displays the DOM events recorded by Sce.Atf.Wpf.Dom.DomRecorder.
  • Controls\EditTextBox: Text box that updates the data binding when the user hits return.
  • Controls\FilePicker: A file selection control for use in property editing.
  • Controls\FindFileDialog: Used with FindFileDialogViewModel and FindFileResolver to attempt to find missing files with user assistance.
  • Controls\FindTargetsDialog: Scans for and displays a list of available targets.
  • Controls\Icon: Icon class with options for image source, selected\deselected images, and shadows.
  • Controls\WindowLayoutManageDialog: Dialog to manage window layouts
  • Controls\PropertyEditing\StandardValuesConverter: A type converter which provides a set of standard values when queried. This can be used on a PropertyDescriptor to force property editors to see a set of standard values. e.g. a string based property can be made to act like an Enum property.
  • Controls\PropertyEditing\ValueEditors\FilePathValueEditor: Custom property editor for editing file paths
  • Controls\PropertyEditing\ValueEditors\FolderPathValueEditor: Data bound property editor that uses a template to edit a folder path
  • Controls\PropertyEditing\ValueEditors\IStringValueFilter: Interface for filtering a string value
  • Controls\PropertyEditing\ValueEditors\RangeSliderValueEditor: Slider property editor with a range of allowable values
  • Controls\PropertyEditing\ValueEditors\StandardValuesEditor: Property editor for an enumerable list of values
  • Controls\RangeBaseEx: Represents an element that has a value in a specific range. Adds extended information such as a default value, whether the value is logarithmic, and whether the value is currently being edited.
  • Controls\RangeSlider: A slider control that allows selection of a range.
  • Controls\RangeSliderBase: Base class for the RangeSlider that allows the range functionality to be turned on or off.
  • Controls\SettingDialog: Dialog for viewing and editing user preferences.
  • Controls\SettingsLoadSaveDialog: Dialog for importing and exporting user settings
  • Controls\SizeBasedTemplateSelector: Selects a template from a list based on the display size
  • Controls\SnappingBitmap: Bitmap that snaps to its parent
  • Controls\SplitButton: A button which has drop down content
  • Controls\StylableListView: A workaround for the issues with styling a standard WPF ListView described here: http:\\social.msdn.microsoft.com\Forums\en\wpf\thread\9cff5483-9608-4f33-98f3-a186de4fa306
  • Controls\SwitchToDialog: Dialog used by SwitchToService to display available controls and allow Ctrl+Tabbing among them
  • Controls\TargetDialog: Dialog for management of ITargets
  • Controls\TcpIpTargetEditDialog: Dialog for editing details of a TCP/IP target
  • Controls\TileView: Class representing a tiled layout view
  • Controls\ToolBarItemTemplateSelector: Helper class to select a template for ToolBarItems
  • Controls\TreeViewWithSelection: Tree view that adds the capabilities of ISelectionContext
  • Controls\ValueChangedEventManager: A more robust event manager for PropertyDescriptor value changed events
  • Controls\VirtualizingWrapPanel: Arranges and virtualizes content on a panel with wrapping
  • Controls\WindowLayoutNewDialog: Dialog for editing the name of a new window layout
  • Docking\ContentSettings: Contains properties related to dock settings for a given control
  • Docking\DockContent: Class representing content to be docked in the docking framework
  • Docking\DockedWindow: This class represents a window while it is docked into the hierarchy. It provides the title bar, close and collapse icons, and can be resized within the hierarchy.
  • Docking\DockIcon: Class for the docking indicators that are displayed when the user is dragging a control to be docked
  • Docking\DocklingsWindow: Transparent window that displays the DockIcons
  • Docking\DockPanel: Root class that provides docking\undocking\collapsing windows and other things
  • Docking\FloatingWindow: Window that contains undocked content
  • Docking\GridLayout: Layout that lays its children horizontally or vertically separated with separators. Each child is a DockedWindow, or another GridLayout.
  • Docking\IDockable: Interface used by every class that can accept and preview dock\drops
  • Docking\IDockContent: IDockable content interface, every content that can be docked must implement this.
  • Docking\IDockLayout: Interface implemented by every docking control host
  • Docking\ResizablePopup: Resizable Popup that can be resized to one side depending on which side it is docked to
  • Docking\SideBarButton: Button that works with the SidePopup
  • Docking\SidePopup: Collapsible panel on the side of the docking window
  • Docking\TabLayout: Docking container that represents its children as tabs
  • Docking\Win32Calls: Utility class that wraps some Win32 interop
  • DOM\DataContextAdapter: Utility class used to adapt FrameworkElement DataContext using ATF IAdaptable pattern
  • DOM\DomRecorder: DOM recorder that records DOM events on the active context and displays them in a list.
  • DOM\HelpAnnotations: Class for working with objects that provide context sensitive help via schema annotations
  • Extensions\DispatcherExtensions: Provides a set of commonly used Dispatcher extension methods such as InvokeIfRequired
  • Extensions\MiscExtensions: A set of miscellaneous extensions mostly related to showing dialogs.
  • Extensions\TreeViewExtensions: Extensions for working with TreeViews, such as GetAllTreeViewItems
  • Extensions\VIsualTreeExtensions: Extensions for working with a VisualTree
  • Interop\KeysInterop: Static utility methods for converting among WinForms, WPF, and ATF key types
  • Markup\CommandServiceExtension: XAML markup extension for working with CommandService
  • Markup\EnumValuesExtension: XAML markup extension for working with enum values
  • Markup\GenericExtension: XAML markup extension for working with generic types
  • Markup\ResourceKeyBinding: XAML markup extension to provide data binding for a resource key
  • Markup\TypeConverterExtension: XAML markup extension that converts between type names and Types for source and target types
  • Models\AdaptableViewModelCollection: This class wraps an IObservableCollection of one type to implement IObservableCollection of another type. This class differs from AdaptableObservableCollection in that it always creates a complete new set of adapters for the underlying collection using the IAdapterCreator passed in to the constructor. This feature is useful for WPF MVVM situations where a collection must be adapted to a new collection of unique view models rather than shared view models.
  • Models\ConfirmationDialogViewModel: Interaction logic for ConfirmationDialog. Adds a "No" button to the CommonDialog's standard Yes\Ok and Cancel buttons.
  • Models\FindFileDialogViewModel: Interaction logic for the FindFileDialog that resolves missing files.
  • Models\FindTargetsViewModel: Interaction logic for the Find Targets dialog
  • Models\SettingsDialogViewModel: Interaction logic for the Settings dialog that displays and edits user preferences
  • Models\SettingsLoadSaveViewModel: Interaction logic for the dialog that imports and exports user settings
  • Models\ShowDialogEventArgs: Event args to allow decoupling of view models from dialogs. Rather than directly launching a dialog, a view model can provide an event subscribed to by the view using these event args.
  • Models\TargetViewModel: Interaction logic for a Target
  • Models\TargetDialogViewModel: Interaction logic for the target management dialog
  • Models\TcpIpTargetEditDialogViewModel: Interaction logic for the dialog for editing details of a TCP/IP target
  • Models\WindowLayoutNewViewModel: Interaction logic for new window layout naming dialog
  • Models\ManageWindowLayoutsDialogViewModel: Interaction logic for the dialog that manages window layouts
  • Resources\DockIcons.xaml: Icons used by the docking framework
  • Resources\dialog_error, dialog_information, dialog_question, dialog_warning: Icons for use with message boxes
  • Skins\ReferencedAssemblySkin: Information about a skin including a URI so it can be referenced from another assembly
  • Skins\Skin: Abstract base class to assist with loading skin resources
  • Themes: Added new styles for ClippingBorder, CommonDialog, DockPanel, DockedWindow, FilePicker, DirectoryPicker, FloatingWindow, RangeSlider, SideBarButton, SidePopup, SplitButton, TabLayout, and TileView.
  • Value Converters\AdaptingValueConverter: Converter for converting back and forth between two IAdaptable types
  • Value Converters\SimpleAdaptingValueConverter: Converter to convert one-way to an IAdaptable type
  • Value Converters\AdaptingCollectionValueConverter: Converter to convert an IObservableCollection of one type to an IObservableCollection of another type using Iadaptable
  • Value Converters\BoolVisibilityConverter: Value converter that sets an item's visibility based on its boolean value
  • Value Converters\DomDataTemplateSelector: DataTemplateSelector for DomNodes which checks the type metadata for a data template tag
  • Value Converters\InterfaceTemplateSelector: DataTemplateSelector that selects a template based on an interface instead of a concrete type.
  • Value Converters\NullVisibilityConverter: Value converter that sets the item's visibility to Collapsed if the item is null
  • Value Converters\TypeConverter: Converter to convert a type to another type
Deleted:
  • CollectionUtil (replaced by VisualTreeExtensions)
  • DispatcherUtil (replaced by DispatcherExtensions)
  • TreeViewUtil (replaced by VisualTreeExtensions)
  • VisualTreeUtil (replaced by VisualTreeExtensions)
  • Interop\CommandServiceAdapter (not needed, unified ICommandService across platforms)
  • Models\MenuItem (replaced by CommandItem)
  • Models\MenuItemBase (not needed, CommandItem replaces MenuItem)
  • Models\MenuUtil (replaced by MainMenuViewModel)
  • Models\ToolBarTrayBinder (removed due to incompatible IMenu type)
Moved to Atf.Gui:
  • ObservableUtil
  • Applications\ICommandService
  • Applications\IHelpContext
  • Applications\MenuInfo
  • Models\AdapterViewModel
Modified:
  • Applications\CommandService: Now implements the common Sce.Atf.Applications.ICommandService.
  • Applications\ControlHostService: Now takes a Sce.Atf.Applications.IMainWindow instead of Sce.Atf.Wpf.Interop.MainWindowAdapter.
  • Applications\EditLabelCommand: CanDoCommand and DoCommand now expect Sce.Atf.Wpf.Applications.EditLabelCommand.Commands instead of ICommandItem.
  • Applications\HelpCommands: CanDoCommand and DoCommand now expect Sce.Atf.Wpf.Applications.HelpCommands.Commands instead of ICommandItem. ContextMenuHelpTag is also still acceptable.
  • Applications\ICommandItem: Removed InputGestures and MenuPath, added Shortcuts and Index.
  • Applications\IThumbnailResolver: Now takes a ThumbnailParameters instead of a Uri.
  • Applications\ThumbnailService: ResolveThumbnail and ResolveThumbnailBlocking now take a ThumbnailParameters instead of a Uri.
  • Behaviors\ AtfTreeViewBehavior: relocated property bindings, from xaml style definitions to code, to prevent binding from being attempted before data context has been hooked up.
  • Behaviors\GridViewColumnHeaderBehavior: Fixed typo SetIsDClickable to SetIsClickable.
  • Behaviors\ItemsControlDropTargetBehavior: OnDragOver, if the dragged item can't be inserted, clear out the drag icon effect(so that the 'not permitted' icon is shown)
  • Controls\FormattingTextBox: Value property is now type string instead of object.
  • Controls\MainWindow.xaml: No longer implements IPartImportsSatisfiedNotification.
  • Controls\PropertyEditing\IPropertyFactory: CreateProperty now takes an ITransactionContext instead of a FrameworkElement.
  • Controls\PropertyEditing\PropertyGrid: added properties for customizing a PropertyGrid's ListBoxItemsPanel template, and its ListBoxItemContainer style.
  • Controls\PropertyEditing\PropertyNode
    • Removed the ctor with many parameters. Set these via the properties instead.
    • Removed the Owner property.
  • Controls\PropertyEditing\TransactionPropertyNode: Removed the ctor with many parameters.
  • Controls\PropertyEditing\ValueEditors\ValueEditor: Added a DependencyObject parameter to GetTemplate and GetStyle. This also affects MultiLineTextEditor and SliderEditor.
  • Models\DialogViewModelBase: Changed CanOk to CanExecuteOk.
  • Models\MainMenuViewModel
    • Removed ctor that takes ICommandService.
    • The Menus property is now of type IEnumerable instead of ObservableCollection.
  • Models\ToolBarViewModel
    • Removed ctor that takes ICommandService.
    • The ToolBars property is now of type IToolBar[] instead of ObservableCollection.
  • Models\TreeViewModel
    • Converted m_itemToNodeMap from a Dictionary to a Multimap, as it is in Atf.Gui.WinForms.TreeViewAdapter. TreeViewModel.GetNode() retains its signature, however it calls new method IEnumerable GetNodes(object), and returns first or default.
    • Tree nodes given 'hover text' property, for specifying the string displayed when mouse is hovered over the node in the tree presentation.
    • Made Node.ItemInfo public, and added OnNodeInfoUpdated(Node), called after every call to IItemInfo.GetInfo(). Allows client code to further modify Node.ItemInfo, before the node itself handles the changes.
  • Sce.Atf.Wpf.WpfImageResourceAttribute has been marked obsolete. Please use Sce.Atf.ImageResourceAttribute instead.
  • Sce.Atf.Wpf.WpfResourceUtil has been marked obsolete. Please use Sce.Atf.Wpf.ResourceUtil instead.
  • Enabled ItemInfo.FontStyle to affect the default WPF TreeViewItem label font.
  • Added unit tests for TreeViewModel, and fixed errors revealed by the tests.
Samples

Updated WinGui samples:

  • Improved separation of WinForms from WPF.
  • Enhanced WpfApp to use some of the new WPF functionality. Added some sample data and a viewing pane that tracks the active document’s current selection.

Authoring Tools Framework 3.8 をリリヌス

Authoring Tools Framework (ATF) 3.8 リリヌスには、6 ヶ月間の䜜業ずクラむアントからの協力により、倚くの改良およびバグ修正が含たれおいたす。 数件の䞻芁な機胜远加および互換性に圱響のある倉曎点が含たれたす。 詳现は、以䞋を参照しおください。

䞻芁な新機胜

  • 2014 幎 3 月 10 日に、GitHub でオヌプン゜ヌスずしおリリヌス。Apache 2.0 ラむセンスに準拠したす。
  • Windows Presentation Foundation (WPF) の察応をクラむアントから倧幅に統合。
  • Skin Editor を远加。これにより珟圚のスキンを線集し、新芏のスキンファむルを䜜成できたす。 Timeline Editor サンプルアプリケヌションを䜿い、[衚瀺] > [スキンを線集] コマンドからお詊しください。
  • 履歎衚瀺機胜を远加。元に戻す/やり盎しのスタックの、芖芚的な衚瀺ず操䜜が可胜になりたした。 Circuit Editor のサンプルアプリケヌションを䜿い、[りィンドり] > [History] コマンドからお詊しください。
  • Circuit Editor が、倖郚ファむルの回路テンプレヌトの参照に察応。[テンプレヌト] タブのコンテキストメニュヌコマンドでご確認ください。
  • プロパティ線集および DomPropertyEditor サンプルアプリケヌションを改良。



Windows 8 および Windows 8.1 ずの互換性

サンプルアプリケヌションはすべお、Windows 8 および Windows 8.1 䞊で正垞に動䜜したす。唯䞀、Direct2D のパフォヌマンスが Windows 7 䞊に比べお倧抵の堎合遅く、ばら぀きがあるずいう問題点がありたす。Windows 8 に比べるず Windows 8.1 䞊の方が、党䜓的によいパフォヌマンスが出おいたす。これは、新しいドラむバヌのリリヌスを重ねるにしたがい、改善しお行くこずが期埅されたす。たた ATF 3.8 では、自動化された機胜テストに断続的な゚ラヌが起きるようになりたした。自動化サヌビスの䟋倖が発生し、テストの実行がハングしたす。 この問題は Windows 8 および 8.1 でのみ発生したす。サンプルアプリケヌションはすべお、手動で問題なく実行できたす。

互換性に圱響する倉曎点

  • 以䞋のメ゜ッド、プロパティ、および型は、以前の ATF リリヌスで既に廃止されおおり、゜ニヌ・コンピュヌタ゚ンタテむンメント瀟内向けにリリヌスされた ATF 3.7 以降、および GitHub でのリリヌス以前に削陀されおいたす。GitHub のナヌザヌには、以䞋に瀺す削陀枈みの廃止項目の圱響はありたせん。なお、この䞀芧には、内郚 Legacy ディレクトリの項目は含みたせん。
    • Sce.Atf.Selection – Toggle(IEnumerable の項目) を削陀。 代わりに ToggleRange を䜿甚しおください。
    • Sce.Atf.VectorMath.Matrix3F – 甚途がなく珟圚のオブゞェクト「this」を返すのみだったプロパティ M を削陀。
    • Sce.Atf.VectorMath.Matrix4F
      • GetTranslation() を削陀。 代わりに Translation プロパティを䜿甚しおください。
      • Sce.Atf.VectorMath.Matrix3F – 甚途がなく珟圚のオブゞェクトである「this」を返すのみだったプロパティ M を削陀。
    • Sce.Atf.Applications.CommandInfo – Shortcut プロパティを削陀。 代わりに Shortcuts プロパティを䜿甚しおください。
    • Sce.Atf.Applications.ScriptingService – SetObject() および RemoveObject() を削陀。 代わりに SetVariable() および RemoveVariable() を䜿甚しおください。
    • Sce.Atf.Controls.Adaptable.Graphs.Annotation – Synchronize() を削陀。 このメ゜ッドは空で甚途がありたせんでした。
    • Sce.Atf.Controls.Adaptable.Graphs.Element – Synchronize() を削陀。 このメ゜ッドは空で甚途がありたせんでした。
    • Sce.Atf.Controls.Adaptable.Graphs.GroupPin – Synchronize() を削陀。 このメ゜ッドは空で甚途がありたせんでした。
    • Sce.Atf.Applications.AutoDocumentService – Form を取るコンストラクタヌを削陀。 代わりに IMainWindow を䜿甚しおください。
    • Sce.Atf.Applications.MainFormTitleService – このクラスを削陀。 IMainWindow で䜿甚できる MainWindowTitleService を䜿甚しおください。
    • Sce.Atf.Applications.ShoutOutputService – このサンプルコヌドを ModelViewer サンプルアプリケヌションに移動。
    • Sce.Atf.Applications.PaletteService – Form を取るコンストラクタヌを削陀。 代わりに IMainWindow を䜿甚しおください。
    • Sce.Atf.Applications.SettingsService – Form を取るコンストラクタヌを削陀。 代わりに IMainWindow を䜿甚しおください。
    • Sce.Atf.Applications.StandardFileExitCommand – Form を取るコンストラクタヌを削陀。 代わりに IMainWindow を䜿甚しおください。
    • Sce.Atf.Applications.UnhandledExceptionService – Form を取るコンストラクタヌを削陀。 代わりに IMainWindow を䜿甚しおください。
    • Sce.Atf.Applications.SourceControlCommands – CheckoutOnEdit プロパティを削陀。 代わりに CheckoutOnEditBehavior を䜿甚しおください。
    • Sce.Atf.ChartUtil – DrawHorizontalScale() オヌバヌロヌドメ゜ッドの 1 ぀および DrawVerticalScale() オヌバヌロヌドメ゜ッドの 1 ぀を削陀。 異なるオヌバヌロヌドを䜿甚し、minimumGraphStep に 0.0f を枡しおください。
    • Sce.Atf.Controls.Adaptable.Graphs.D2dSubCircuitRenderer – FloatingPinNodeHeight および FloatingPinNodeWidth を削陀。 代わりに CircuitGroupPinInfo.FloatingPinBoxHeight および CircuitGroupPinInfo.FloatingPinBoxWidth を䜿甚しおください。
    • Sce.Atf.CustomFileDialog
      • InitialDirectory を削陀。 このプロパティは無効でした。 特定のディレクトリでダむアログボックスを開くには、ForcedInitialDirectory をご芧ください。
      • UserControl を削陀。 このプロパティぞのサポヌトが終了したした。
    • Sce.Atf.Controls.FloatInputControl – TickFrequency を削陀。 このプロパティは無効でした。
    • Sce.Atf.Controls.IntInputControl – TickFrequency を削陀。 このプロパティは無効でした。
    • Sce.Atf.Controls.Timelines.Direct2D.D2dTimelineControl – events パラメヌタヌを持぀ GetBoundingRect() を削陀。 このパラメヌタヌは垞に無芖されおいたした。パラメヌタヌのない GetBoundingRect() を䜿甚しおください。
    • Sce.Atf.Perforce.PerforceService – ShowErrors プロパティを削陀。 このプロパティは無効でした。 ゚ラヌや譊告の衚瀺は、Sce.Atf.Outputs、OutputService および ErrorDialogService をご芧ください。








  • Vec3F などのほずんどの math クラスにおいお ToString() メ゜ッドが改善され、ペヌロッパ蚀語での䜿甚が可胜になり、振る舞いの䞀貫性が高たりたした。小数点ずしおコンマ (,) を䜿甚する蚀語では、リストの数字はセミコロン (;) で区切らなければならないずころを、以前のバヌゞョンでは、珟圚の文化圏の蚭定に関わらず、数字の区切りにコンマ (,) がハヌドコヌドされおいるずいう問題がありたした。詳现は、https://github.com/SonyWWS/ATF/issues/5 を参照しおください。
    • StringUtil.GetNumberListSeparator(IFormatProvider) を远加。
    • FloatArrayConverter: 珟圚の文化圏の蚭定に基づいお、数字の区切り文字ずしお、コンマ (,) もしくはセミコロン (;) の適切な方を䜿甚するように倉曎。
      • 以前の振る舞い: ToString() はペヌロッパ文化圏での氞続化や GUI には無効でした。 英語圏では氞続化や GUI で有効です。 ToString(null, null) は ToString() ず同じです。 ToString(“G”, englishCulture) は英語の GUI で有効です。 かっこが远加されたす。 浮動小数点数は出力前に倍粟床浮動小数点に倉換されたす。 ToString(“G”, euroCulture) はどの文化圏の GUI でも無効です。 かっこが远加されたす。 浮動小数点数は出力前に倍粟床浮動小数点に倉換されたす。 ToString(“R”, CultureInfo.InvariantCulture) はどの文化圏の氞続化でも有効です。 かっこが远加されたす。 浮動小数点数は出力前に倍粟床浮動小数点に倉換されたす。
      • 珟圚の振る舞い: ToString() はすべおの文化圏の GUI で有効です。 英語圏では氞続化や GUI で有効です。 ToString(null, null) は ToString() ず同じです。 ToString(“G”, englishCulture) は英語の GUI で有効です。 ToString(“G”, euroCulture) はペヌロッパ蚀語の GUI で有効です。 ToString(“R”, CultureInfo.InvariantCulture) はどの文化圏の氞続化でも有効です。














  • Sce.Atf.Controls.Adaptable.Graphs.D2dGraphRenderer のプロパティにスペルミスがありたした。 MaxiumEdgeThickness ずいうプロパティ名を MaximumEdgeThickness に倉曎したした。
  • Sce.Atf.Dom.Template の 抜象 Model プロパティを削陀し、Target プロパティを抜象プロパティに倉曎。 掟生クラスを䜿甚するクラむアントは、Model プロパティを Target プロパティに倉曎するこずにより、コンパむル゚ラヌが解消したす。 Target プロパティず Model プロパティは同じものであり、クラスが䞍必芁に耇雑になったため、この互換性に圱響のある倉曎を行いたした。
  • PerforceService.RequestProcessed に誀っお含たれおいたセッタヌを削陀。 Perforce リク゚ストがすべお凊理されたかどうかは、PerforceService 内郚の情報であるため、呌び出し元からの確認が䞍可胜でした。
  • Sce.Atf.Controls.PropertyEditing.LongEnumEditor に以䞋の互換性に圱響のある倉曎が远加されたした。
    • デフォルトでは、ナヌザヌによるコンボボックスぞの任意のテキスト入力が䞍可胜になりたした。 これは最も期埅されおいた振る舞いです。 任意のナヌザヌ入力を蚱可するには、TextEditEnabled を true に蚭定したす。
    • Initialize(string[]) が明瀺的なむンタヌフェむスの実装になりたした。 代わりに DefineEnum(string[]) を䜿甚しおください。
    • DropDownHeight を削陀。 ドロップダりンアむテムのリストの高さの最倧倀を指定するには、代わりに MaxDropDownItems を䜿甚しおください。
    • DefineEnum(string[] names, int[] values) を削陀。values パラメヌタヌが垞に無芖されおいたためです。
    • パブリック静的むベント EnumSelectionChanging を削陀。リク゚ストしたクラむアントがこのむベントを䜿甚しないこず、および、リスナヌからは遞択されたアむテムしかわからず、線集䞭の LongEnumEditor オブゞェクトは知るこずができないためです。このような理由から、このむベントは䞀般的に有甚ではないず刀断したした。
  • IFileDialogService 呌び出しが System.Windows.Forms.DialogResult ではなく Sce.Atf.Applications.FileDialogResult を返すように倉曎。WinForms ぞの䟝存性を解消したす。



カテゎリ別の詳现倉曎リスト



オヌプン゜ヌス/ドキュメント

  • すべおの ATF りィキドキュメントを SHIP から GitHub に移動。
  • License.txt に Apache v2.0 ラむセンスを远加し、゜ヌスコヌドずテストスクリプトの著䜜暩情報をアップデヌト。
  • 廃止マヌクが぀けられたコヌドを削陀。 詳现は、「互換性に圱響する倉曎点」を参照しおください。
  • PDF ドキュメントおよび元ずなる Word ドキュメントのラむセンスおよび機密保持の文面を、オヌプン゜ヌスラむセンスに合わせお倉曎。 著䜜暩情報の文面をアップデヌト。
  • GitHub で必須ずされる README.md を远加。*.md はマヌクダりンりィキ圢匏を意味したすが、実質はテキストファむルです。内容は ReadMe.txt に基づくものですが、パブリックリポゞトリの構造の違いを反映しおいたす。
  • パブリック GitHub リポゞトリで、ATF の䜿甚状況ロギングを簡単に無効にする方法を远加。 このような違いに察しお、PUBLIC 前凊理ディレクティブを䜿甚できるようになりたした。
  • ATFProgrammer_Guide_exported_from_wiki.pdf を削陀。GitHub で公開されおいるこず、フォヌマット゚ラヌがあるこず、サむズが倧きいこずが理由です。
  • ドキュメントから SHIP ぞのリンクを削陀。
  • 叀い Samples/LevelEditor ディレクトリおよび、LevelEditor の堎所を瀺す、ディレクトリ内の ReadMe.txt を削陀。 新芏クラむアントに混乱を匕き起こさないための配慮です。
  • 『ATF-GettingStarted.doc』の「Supported Tools」の項をアップデヌト。.NET Framework 4 および C# 4 が必須であり VS2013 に察応しおいる旚を蚘述したした。
  • コメントを改良し、公開された型やメンバヌに䞍足しおいたコメントを远加。
  • Sandcastle で䜜成した ATF_API-Reference.chm ファむルを远加。 たた、ATF API の chm ファむルを䜜成するプロゞェクトを远加。


GitHub から取り入れた倉曎

  • Pair.cs の冗長なヌルチェックを削陀。(lioncash)
  • BezierCurve および Seg2F の ToString() フォヌマットを修正。 (lioncash)
  • DomNodePropertyMatch コンストラクタヌ内の䟋倖メッセヌゞを修正。 (lioncash)
回路
  • StandardLayoutCommands で右端もしくは䞋端を正垞に揃えられない問題の原因ずなった、回路芁玠の Bounds プロパティのバグを修正。
  • CreateTestCircuitProgrammatically() にワむダヌを远加した際に起こるクラッシュを修正。ワむダヌ远加埌に、デフォルトでは非衚瀺だったグルヌプのピンを衚瀺するこずにより修正したした。
  • CircuitValidator は適合した DomNode が䞍芁ずなり、ReferenceValidator に察応したす。(CTE は、ワむダヌの蚭定が倧幅に異なり特別に凊理されるため、ReferenceValidator が䞍芁です。)
  • Circuit Editor の Editor クラスにコメントを远加。
  • 回路テンプレヌト: テンプレヌト参照むンスタンスを、コピヌむンスタンスにレベル䞋げした埌に参照むンスタンスに再床レベル䞊げするず、元のテンプレヌトの UUID が埩元されず、代替たたは远加のテンプレヌトダむアログの衚瀺に倱敗するバグを修正。
  • ほかのドキュメント内に配眮可胜な、回路テンプレヌトフォルダヌのサポヌトを初期実装。
    • CategoryUniqueIdValidator を远加し、ロヌカルにナニヌクな ID をサポヌト。テンプレヌトツリヌ階局に内郚ノヌドずほかのドキュメントよりむンポヌトされた倖郚ノヌドが混圚するようになり、倖郚ドキュメントのノヌド ID が内郚ノヌドの ID ず衝突する可胜性があるため必芁になりたした。
    • DomNode: 実行時にノヌドにタグ付けをする SetTag() および GetTag() を远加。同様の目的で、動的 (倉曎可胜) DOM 属性の方法を調査する必芁がありたす。
    • テンプレヌトぞの参照むンスタンスはすべおドキュメントに䟝存しない GUID で解決されたす。珟圚、回路でカスタマむズされたリヌダヌおよびラむタヌのみで GUID ベヌスの解決がされおいたす。
  • テンプレヌトフォルダヌが External の堎合は、倖郚の性質を瀺す特別なアむコンが衚瀺されるようになりたした。
  • テンプレヌトラむブラリ倖郚フォルダヌ: テンプレヌトリストの UI の凊理を埮調敎。倖郚テンプレヌトフォルダヌ内でのアむテムの移動、ドキュメント間での移動、および倖郚フォルダヌぞのアむテムの盎接移動を犁止したした。遞択されたフォルダヌが倖郚フォルダヌの堎合は、代わりにアむテムはルヌトフォルダヌに远加されたす。
  • 倖郚テンプレヌトフォルダヌ䞊にカヌ゜ル移動するず、テンプレヌトファむルのパスを衚瀺したす。
  • 倖郚テンプレヌトが芋぀からないファむルの読み蟌み、衚瀺、保存に察応。芋぀からないテンプレヌトは特別なスタむルで衚瀺されたす。
  • リ゜ヌス package_error.png を远加。芋぀からない倖郚テンプレヌトを参照する回路芁玠のレンダリングに䜿甚したす。
  • テンプレヌトリストのコンテキストメニュヌに [Rescan] コマンドᅵを远加。テンプレヌトリストで参照されおいるすべおのテンプレヌトドキュメントを再床読み蟌みたす。
  • UpdateGroupPins における出力グルヌプピンの、むンデックス初期倀の蚭定に関する問題を修正。 修正前は m_inputs.Count が䜿甚されおいたしたが、珟圚は正しく m_outputs.Count が䜿甚されたす。
  • 回路芁玠: ヘルパヌメ゜ッドの InputPin(index) および OutputPin(index) を远加。
  • 回路テンプレヌトの線集は、そのテンプレヌトを所有するドキュメント内でのみ可胜になりたした。
  • 参照されたグルヌプピンを、UI からほかのピンに関連付けられない問題を修正。
  • スペルミスの修正: GroupingCommands.DefaultPinOderStyle プロパティの名前を DefaultPinOrderStyle に修正。
  • レむアりトの制玄がない堎合のクラッシュを ViewingContext.ConstrainBounds() で修正。 (Creature Editor のグラフビュヌには通垞のグリッドアダプタヌがありたせん。)
  • CircuitEditingContext に 3 ぀の仮想の保護されたメ゜ッドを远加。OnObjectInserted()、OnObjectRemoved()、および OnObjectChanged()。掟生クラスはそれぞれ ItemInserted、ItemRemoved、および ItemChanged むベントを発生させるこずができたす。
  • CircuitEditor: 内郚テンプレヌトのサブノヌドから、倖郚ノヌドぞの関連付けを䜜成する際のクラッシュを修正。
  • FSM Editor および StateChart Editor: 芁玠間の接続の䜜成を瀺す、䞀時的なワむダヌが衚瀺されない問題を修正。
  • 回路の倖郚テンプレヌト: テンプレヌトドキュメントの再スキャン凊理の最埌に叀いテンプレヌトを削陀。
  • Circuit Editor: スキヌマファむルのテンプレヌト型の参照甚に、廃止された typeRef 属性を再床远加。これにより、テンプレヌトのある叀い回路ドキュメントが読めるようになりたす。たた倉換コヌドを远加し、叀いバヌゞョンの回路ドキュメントが新しいフォヌマットで保存されるようになりたした。なお、廃止された typeRef 属性は、珟圚は guidRef に眮き換わっおいたす。
  • Circuit Editor の配眮コマンドを修正。グルヌプや芁玠が正しく配眮されたす。 BoundsSpecified を無芖しおいた ILayoutContext の実装を 3 箇所修正したした。
  • 回路グルヌプ: 回路グルヌプの幅を広く倉曎する床に、高さも少しず぀増えるバグを修正したした。
  • ノヌド配眮のオフセットに関する問題を修正。浮動ピンの Y 座暙の範囲を蚈算するコヌドを D2dSubgraphAdapter.GetBounds(items) から ViewingContext.GetBounds() に移動したした。 前者のメ゜ッドは遞択されたアむテム甚であるため、すべおの浮動ピンの Y 座暙の範囲を垞に含めるためには適しおいたせんでした。埌者はすべおのアむテム甚のメ゜ッドであるため、ビュヌがグルヌプ゚ディタヌに関連付けられおいる堎合に Y 座暙の範囲を含めるために適しおいたす。
  • Circuit Editor: 展開されたビュヌでグルヌプ内の芁玠間のワむダヌを䜜成する際に、衚瀺されるカヌ゜ルアむコンを修正。
  • 倖郚から参照されおいるテンプレヌトのノヌドを削陀したため、接続先のなくなったワむダヌがクラッシュする問題を修正。
  • GroupInstance および ModuleInstance: 芋぀からない型を凊理ための InputPin(index) および OutputPin(index) のオヌバヌラむドを远加。


Direct2D

  • D2DFactory.MeasureText を远加。指定されたフォントで描画された文字列の幅を枬定したす。
  • D2dGraphics の敎理、および機胜の远加。
  • WIC renderTarget ぞのレンダリングのサポヌトを远加。
  • D2dGeometry および D2dGeometrySink のサポヌトを远加。
  • D2dGeometry にヒットテストのメ゜ッドを远加。
  • D2DFactory: 倉換䞀芧衚を䜿甚した TextLayout の䜜成を可胜にしたす。
  • D2dGeometry Bounds プロパティの远加。
  • D2dTextLayout および D2dTextFormat のメモリリヌクを修正。
  • D2dTextFormat で正しい FontHeight の蚈算を䜿甚するようになりたした。
  • 長いマヌカヌラベルに察応するため、ラベルおよびヒント管理の凊理を改良。
  • D2dCircuitRenderer:
    • 芁玠の描画をカスタム化するためのプロパティを远加: RoundedBorder、TitleBackgroundFilled、および PinDrawStyle。
    • カスタム化された芁玠を描画するための、保護された仮想メ゜ッドを远加: GetElementTitle および GetElementDisplayName。
    • 芁玠の型に関連付けられたブラシが D2dLinearGradientBrush ではない堎合に起きるクラッシュを修正。
    • オプションのドキュメントレゞストリのパラメヌタヌを、コンストラクタヌ内に远加。ドキュメントが削陀された際に、芁玠型のキャッシュをクリアしたす。
    • GetElementSizeInfo: オプションのタむトルパラメヌタヌを远加。芁玠サむズの蚈算に、カスタム化されたタむトルテキストのサむズを含めたす。
    • ElementTypeInfo: Title フィヌルドを远加。キャッシュされたタむトルが異なる堎合は、キャッシュされたデヌタが無効ずされ、芁玠のサむズを再蚈算したす。 Creature Editor が同じ型の芁玠に異なるタむトルを぀けおいる堎合があるため、タむトルの倀をキャッシュする必芁がありたす。
    • 展開したグルヌプをレンダリングするための、高さの蚈算方法を倉曎。
  • 掟生クラスがマりスのヒット蚘録ぞのアクセスを必芁ずする堎合に備え、D2dGraphEdgeEditAdapter の DraggingContext ゲッタヌの MousePick をアップデヌト。
  • D2dGraphAdapter: ゚ッゞ線集時のカヌ゜ルをカスタム化する OverRouteCursor、FromPlaceCursor、ToPlaceCursor および InadmissibleCursor を远加。
  • D2dGraphAdapter: 幅ず高さが䞍正に蚈枬される原因の GetBounds() メ゜ッドの問題を修正。


プロパティ線集

  • 新芏のカスタムボタン OverlayButton を远加。
  • PropertyGridView が珟圚遞択䞭のプロパティのリセットボタンを衚瀺。
  • PropertyGrid に [すべおのプロパティをリセット] ボタンを远加。
  • PropertyEditingCommands をリファクタリングし、より倚くの機胜を远加。 次のコンテキストメニュヌを远加したした。
    • プロパティ倀をコピヌ
    • プロパティを貌り付け
    • プロパティをリセット
    • すべおをコピヌ
    • すべおに貌り付け
    • すべおのプロパティをリセット
    • テキスト゚ディタヌに衚瀺
  • PropertyGridView で描画が 1 ピクセルずれる゚ラヌを修正。
  • PropertyEditingControl の OnPaint メ゜ッドおよび OnBackColorChanged メ゜ッドを削陀。
  • PropertyEditingControl: クラむアントから報告された再珟できない問題を修正。カスタム゚ディタヌを衚瀺するためにプロパティのドロップダりンボタンを 2 床クリックするず、2 床目にぱディタヌが衚瀺されない問題がありたした。 この修正は、既に false である m_dropDownForm.Visible を false に蚭定するものであり、安党です。
  • PropertyGridView が矢印やタブキヌを凊理できるようになりたした。
  • Enter キヌを抌すず、以䞋の UITypeEditor で次の入力ボックスにフォヌカスが移動するようになりたした。
    • NumericTupleEditor
    • NumericMatrixEditor
    • ArrayEditor
  • EmbeddedCollectionEditor:
    • 同じトランザクション内でアむテムが远加された埌に削陀された堎合、この 2 ぀のむベントがお互いを取り消さないバグを修正。
    • ナヌザヌによる「」もしくは「-」ボタンの抌䞋に反応しお、ObservableContext が ItemInserted もしくは ItemRemoved を発生させなかった堎合、以前はアむテムの挿入や削陀が䞍可胜でしたが、今リリヌスからはアむテムの䞀芧が垞にアップデヌトされるようになりたした。
  • LongEnumEditor: 党面的な曞き盎し。 画像が衚瀺できるようになりたした。 リセットボタンでプロパティの元の倀を埩元したす。以䞋の互換性に圱響のある倉曎が远加されたした。
    • デフォルトでは、ナヌザヌによるコンボボックスぞの任意のテキスト入力が䞍可胜になりたした。 これは最も期埅されおいた振る舞いです。 任意のナヌザヌ入力を蚱可するには、TextEditEnabled を true に蚭定したす。
    • Initialize(string[]) が明瀺的なむンタヌフェむスの実装になりたした。 代わりに DefineEnum(string[]) を䜿甚しおください。
    • DropDownHeight を削陀。 ドロップダりンアむテムのリストの高さの最倧倀を指定するには、代わりに MaxDropDownItems を䜿甚しおください。
    • オヌバヌロヌドの public void DefineEnum(string[] names, int[] values) を削陀。values パラメヌタヌが垞に無芖されおいたためです。
    • パブリック静的むベント EnumSelectionChanging を削陀。リク゚ストしたクラむアントがこのむベントを䜿甚しないこず、および。リスナヌからは遞択されたアむテムしかわからず、線集䞭の LongEnumEditor オブゞェクトは知るこずができないためです。このような理由から、このむベントは䞀般的に有甚ではないず刀断したした。
  • NumericTextBox: マりスクリックで、プロパティ゚ディタヌの入力ボックスの内容を遞択したす。
  • DomPropertyEditor サンプル: 新しい Level プロパティを Orc に远加し、enum 倀の敎数もしくは文字列ずしおの衚瀺を実行したす。


スキニング

  • バグ修正: デフォルト以倖のスキンを適甚した堎合に、ツヌルバヌボタンのハむラむトおよび切り替えのステヌタスが壊れおいたバグを修正。
  • CustomColorTable の問題を数件修正し、サンプルスキンにより倚くのオヌバヌラむドを指定。
  • スキニングがより均䞀になるように Dark.skn をアップデヌト。
  • すべおの UITypeEditors でスキニングに察応。
  • PropertyView の SetFont を無効化。廃棄されたフォントのクロヌニングにより SkinService が䟋倖を発生するためです。
  • クラむアント以倖の領域 (タむトルバヌ、フォヌムの枠線、キャプションのボタン、フォヌムアむコンおよびタむトルテキスト) をレンダリングする FormNcRenderer を远加。
  • タむトルバヌのスキニングぞの察応および、Dark.skn ず Light.skn にタむトルバヌのスキンを远加。
  • SkinEditor を䜜成し、゚ディタヌ UI、スキンの保存ず読み蟌み、およびスキンスタむルのオブゞェクトのプロパティ蚘述子ぞの察応を远加。
  • スキンファむルの蚭定がされおいない堎合に起きるクラッシュを修正。
  • SkinningService に ActiveSkinFile プロパティを远加。 プロパティが null でない堎合に Skin Editor を起動するず、このスキンが線集甚に自動的に読み蟌たれたす。
  • 空のスキンファむル Classic.skn を削陀。
  • ColorPicker のスキニングの問題を修正: 初期の色が正しく蚭定されず、ラゞオボタンのテキストが完党に衚瀺されない問題がありたした。
  • TreeControl の Text プロパティの描画に䜿甚される Brush を SystemBrushes.WindowText から ItemRenderer.TextBrush に倉曎。スキンが適甚可胜になりたした。
  • SkinService: スキン゚ディタヌ実行䞭の読み蟌みコマンドおよび元に戻すコマンドを無効化。スキン゚ディタヌは垞にアクティブなスキンを線集するこずになり、わかりやすいナヌザヌむンタヌフェヌスが保たれたす。リファクタリングも行いたした。静的内郚プロパティ「Instance」が䞍芁になったため削陀したした。


゜ヌス管理

  • PerforceService.GetInfo() - p4 コマンドの fstat が倱敗し、゚ラヌメッセヌゞが提䟛されない堎合には、゚ラヌメッセヌゞの出力を詊みないように倉曎。
  • Perforce の .NET ラむブラリをアップデヌトしおハヌトブリヌドのバグに察凊。 http://www.perforce.com/blog/140422/heartbleed-vulnerability-update-patched-perforce-clients-now-available を参照しおください。
  • PerforceService: マルチスレッドアクセスの問題に察凊し、倧幅なクリヌンアップをしたした。具䜓的には次のずおりです。
    • ConnectionManager: P4API.NET オブゞェクトは䞀床に 1 スレッドしかアクセスできないため、ガヌドを远加。
    • FileInfo: PerforceRequestQueue クラスを必芁ずし、コヌドにかなりのオヌバヌヘッドを加える登録リク゚ストの方匏を廃止。この機胜の利点は、ファむルに察しお保留䞭の Perforce サヌバヌリク゚ストがある堎合は垞に、「状態䞍明」を返すこずでした。このような堎合は、代わりに最埌の既知の状態を䜿甚しおください。
    • PerforceRequest: この内郚クラスで䜿われおいないプロパティを削陀。
    • PerforceRequestQueue: この内郚クラスを完党に削陀。必芁な機胜が远加されなかったこずが理由です。
    • バックグラりンドスレッドの曞き盎し。2 秒のポヌリング方匏ではなく、むベントをトリガヌする方匏を䜿甚するようになりたした。ロゞックが簡朔になり、UI の応答性やパフォヌマンスの改善が芋蟌たれたす。
    • GUI スレッドずワヌカヌスレッドの䞡方からアクセスされる、共有オブゞェクトにロックを远加。
    • ワヌカヌスレッドに耇数の Perforce リク゚ストが保留䞭の堎合、それらのリク゚ストは 1 ぀にたずめられ、Perforce サヌバヌに察しおすべおの関連ファむルを䞀床にク゚リしたす。 以前のバヌゞョンでは、保留䞭のリク゚ストがそれぞれ Perforce サヌバヌに別のク゚リを行っおいたした。 数癟もしくは数千個のファむルに察するステヌタスのク゚リが、倧幅に効率的になりたす。
  • PerforceService ConnectionManager が䟋倖を ValidateConnection() で凊理するようになりたした。
  • Atf.Subversion プロゞェクトを远加。Subversion を䜿甚しお ISourceControlService を実装したす。
  • 以前の P4.Net \ThirdParty ラむブラリを削陀。 これらのラむブラリは ATF 3.7 より P4API.Net に眮き換わっおいたした。
WPF の改良
  • 付録 A 「ATF 3.8 リリヌスノヌト WPF に関する補足事項」に蚘茉されおいたす。
その他
  • IronPython のりィンドりなどで䜿甚する ConsoleTextBox が、耇数のコマンドを含むテキストを凊理できるようになりたした。
  • グラフィックアヌティストによる ATF ロゎずアむコンを远加。 ロゎは \[ヘルプ] -> \[バヌゞョン情報] 画面に䜿甚されおいたす。 アむコンはタむトルバヌおよび Windows タスクバヌで、サンプルアプリケヌションを瀺すために䜿甚されたす。
  • EnumerableUtil.ForEachWhileTrue を远加。特定の条件が true である間に、コレクションを列挙したす。
  • Cartesian2dCanvas.cs: プラむベヌトメ゜ッドにメモリを描画する共通のコヌドを配眮。
  • MathUtil: 倀パラメヌタヌが null の堎合の、Clamp メ゜ッドの NullReferenceException を修正。
  • 元に戻す/やり盎しのスタックの芖芚的なリストである HistoryLister を远加。 ナヌザヌはリストをクリックしお、倚数のコマンドを元に戻すこずや、やり盎すこずが可胜です。 衚瀺できるコマンドの最倧数は、プロパティでナヌザヌが線集可胜です。 デフォルト倀は 150 で、最小倀は 10 です。数件のサンプルアプリケヌションに远加したした。
  • ATF ThreadSafeProgressDialog - Run() メ゜ッドの最終ブロックに m_parent.Owner == null のチェックを远加し、たれに起こる Run() メ゜ッドが終了する前に芪ダむアログが凊分された堎合に察凊したす。
  • ドラッグアンドドロップの操䜜に、シェルスタむルのドラッグアンドドロップむンタヌフェヌスを提䟛。 フォヌムで正しいメ゜ッドを呌び出すず、シェルからアむコンが衚瀺されたす。たずえば、ファむルを゚クスプロヌラヌにドラッグするず画像が衚瀺されたす。ただし、ドラッグアンドドロップの開始時に、ドラッグアンドドロップ操䜜に独自の画像を添付するこずも可胜です。 (Metrics で䜿甚。)
  • DefaultTabCommands: コントロヌルの蚘述が「Untitled:Group」などの䞍正なパス名であるために、回路グルヌプなどのサブドキュメントのりィンドりでクラッシュが起きるこずのある問題を修正。
Vex3F などのほずんどの math クラスにおいお、ペヌロッパ蚀語の䜿甚を可胜にし、振る舞いの䞀貫性を高めるために ToString() メ゜ッドが改善されおいたす。 小数点ずしおコンマ (,) を䜿甚する蚀語では、リストの数字はセミコロン (;) で区切らなければならないずころを、以前のバヌゞョンでは、珟圚の文化圏の蚭定に関わらず、数字の区切りにコンマ (,) がハヌドコヌドされおいるずいう問題がありたした。 解決された問題の詳现: https://github.com/SonyWWS/ATF/issues/5 この振る舞いに関しおは、「互換性に圱響のある倉曎」を参照しおください。
  • 安定した SharpDX 2.5.0 のリリヌスに曎新。
  • HistoryLister のナヌザヌ蚭定のテキストを倉曎。
  • Atf.Core に ColorUtil.Lerp()、EnumerableUtil.IndexOf() および新芏の AttributeUtils クラスを远加。
=== 互換性に圱響する现かい倉曎点 === Sce.Atf.Controls.Adaptable.Graphs.D2dGraphRenderer のプロパティにスペルミスがありたした。 MaxiumEdgeThickness ずいうプロパティ名を MaximumEdgeThickness に倉曎したした。
  • CustomColorTable: 4 箇所のスペルミスを修正。スペルミスのために誀った蚭定可胜なプロパティが、蚭定䞍可胜なプロパティで䜿甚されおいた問題を解決したす。
  • Sce.Atf.Dom.Template の 抜象 Model プロパティを削陀し、Target プロパティを抜象プロパティに倉曎。 掟生クラスを䜿甚するクラむアントは、Model プロパティを Target プロパティに倉曎するこずにより、コンパむル゚ラヌが解消したす。 Target プロパティず Model プロパティは同じものであり、クラスが䞍必芁に耇雑になったため、この互換性に圱響のある倉曎を行いたした。
  • LINQ に関連するパフォヌマンスを最適化。
  • 最近の PropertyEditingControl の倉曎により、DrawingEditableValue ゲッタヌを廃止。 垞に false を返しおいたしたが、 廃止マヌクが付きたした。
  • Atf.Gui.Input に KeyPressEventArgs および PreviewKeyDownEventArgs を远加。
  • DefaultTabCommands: カスタム化ポむントを远加。これによりクラむアントは、どのドッキングした Control のタブで「フルパスをコピヌ」および「ドキュメントを含むディレクトリを開く」のコマンドを利甚可胜にするかを指定できたす。
  • EnumerableUtil の IndexOf の拡匵で、ArgumentNullException を発生させるのではなくデフォルトの等倀比范を䜿甚したす。
  • メモリ砎損の問題のため、DevilImageLoader に廃止マヌクを付けお ImageLoaderRegistry から䜿甚箇所を削陀。 䞀般的な画像ファむルフォヌマットで䜿甚できる、ほかの各皮むメヌゞロヌダヌを䜿甚しおください。 DdsCompressor が DevilImageLoader の代わりに DdsImageLoader を䜿甚するように倉曎したした。
  • https://github.com/SonyWWS/ATF/issues/9
  • Collada スキヌマファむル: !DOCTYPE 芁玠を削陀。!DOCTYPE 芁玠が .NET XmlSchemaSet の DTD 凊理に関する XmlSchemaTypeLoader.Load(string) で、無害ず思われる XML 䟋倖を発生させおいたこずが理由です。 これは珟時点で最適な修正です。 https://github.com/SonyWWS/ATF/issues/9 で報告された现かい問題の 1 ぀です。
  • CodeEditor サンプルを曎新。サンプルは UnhandledExceptionService コンポヌネントを䜿甚するようになりたした。
  • Sce.Atf.Adaptation.Adapter: Adapter ず同じオブゞェクトに Adaptee を適合できるず、同じオブゞェクトを 2 床返すこずができる Adapter.GetDecorators() の問題を修正。 問題を再珟実行し、正しい修正動䜜を確認するナニットテストを远加したした。 IDecoratable に関するいく぀かのコメントを修正したした。
  • DomNode: Copy() メ゜ッドも ChildInfo をコピヌするように倉曎。 以前は芪が蚭定されるたでは、芪の DomNode から芋たの珟圚の DomNode を説明する ChildInfo は null でした。 この方法は、氞続化のために ChildInfo を必芁ずする ルヌト DomNode 以倖の、すべおのノヌドには問題がありたせんでした。 このリリヌスからは、ルヌト DomNode がコピヌであっおも、氞続化が可胜になりたした。
  • ListViewAdapter: 同じ DomNode が耇数回挿入された堎合の、「An item with the same key has already been added (同じキヌのアむテムが既に远加されおいたす)」ずいう䟋倖を修正したした。 これは発生する可胜性の䜎い問題でした。
  • ColorPicker: ゚ラヌメッセヌゞをロヌカラむれヌション可胜なものに倉曎。
  • ColorPicker に AutoScaleMode を远加。Font サむズに合わせお拡倧瞮小したす。
  • System.Windows ずの競合を避けるために、名前空間 Sce.Atf.DragDrop を Sce.Atf に曎新。
  • TransactionReporter を远加。たずえば、重耇する属性倉曎をせずに、トランザクションの最埌に起こる DOM のクリヌンアップによる倉曎を報告する DomNodeAdapter です。
  • アセンブリ甚のバナヌ画像の指定を可胜にする Sce.Atf.AssemblyBannerAttribute を远加。
  • Atf.Gui.CustomizeAttribute および、その掟生の Sce.Atf.Controls.PropertyEditing.PropertyView.CustomizeAttribute を远加。
  • Scea.Editors.Commands クラスを Atf.Gui.Commands にクロヌン。クロヌンされたクラスは独立したクラスで、元の Scea の堎所から掟生したものではありたせん。
  • ブヌル型プロパティ DocumentClientInfo.AllowStandardFileCommands を远加。登録された IDocumentClient が、暙準ファむルコマンドを自動的にドキュメントタむプに远加するのを防ぎたす。
  • RecentDocumentCommands.MaxPathLength.get を远加。これにより、ルヌトファむルメニュヌに衚瀺されるパスを短くできたす。
  • WeifenLuo.WinFormsUI.Docking ラむブラリのバグを修正。ドッキングパネルにアむコン指定がなく、ShowIcon が false に蚭定、Windows プレヌスホルダヌアむコンが衚瀺されおおり、いづれかのドッキングパネルが自動非衚瀺の堎合に起きるバグが解消されたす。
  • ドッキングステヌトが Unknown のペむンに GetTabStripRectangle が呌び出された際の、AutoHideStripBase の䟋倖を修正。
  • DocumentClientInfo に DefaultExtension プロパティを远加。 ゚ディタヌが耇数の拡匵子に察応する堎合、デフォルト拡匵子を蚭定するこずにより、新芏ファむル䜜成時に ATF がナヌザヌに拡匵子の遞択を求めなくなりたす。
  • DomNode: 利䟿性を向䞊するために Copy(DomNode) メ゜ッドを远加。
  • DomNode: GetLocalAttribute() の読み出し元に、属性がデフォルト倀であるのか、それずもデフォルトず同じ倀に蚭定されたのかを識別可胜にする现かい倉曎を远加。 この倉曎により、ATF 3.5 以前の Santa Monica Studio の Creature Editor などのクラむアントのコヌドで、GetLocalAttribute() を䜿甚しお、倀がデフォルトであるか、蚭定されたものであるかが識別可胜になりたした。
  • GetPhysicalMemoryMB() を AtfUsageLogger.cs から Kernel32.cs に移動し、アクセスレベルをプラむベヌトからパブリックに倉曎。
  • WinFormsUtil: BoundsSpecified フラグのある Rectangle を曎新する UpdateBounds() を远加。
  • Statechart Editor: 芪ステヌトに貌り付けられた子ステヌトの䜍眮に関する問題を修正。
  • アプリケヌション起動時にドキュメントが開いおいない堎合は、タむトルバヌが空にならないように、メむンのフォヌムタむトルをサンプルアプリケヌションの名前 (CircuitEditor、FsmEditor および StatechartEditor) に初期化したす。
  • UsingDirect2D サンプルアプリケヌション: テキストを読みやすくするためにタむトルバヌの情報に现かい倉曎を远加。 スペヌスおよびピリオドを加えたした。
  • レガシヌの FileExplorer サンプルの䟋倖凊理を改善。



付録 A: ATF 3.8 リリヌスノヌト WPF に関する補足事項

このセクションでは、ATG の ATF 3.8 ぞの WPF 実装にずもなう倉曎を説明したす。 倉曎はアセンブリ別に瀺したす。 Atf.Gui.Wpf 以倖のアセンブリの倉曎は、互換性に圱響がありたせん。 なお、アセンブリぞの互換性に圱響のある倉曎に぀いおは、ATF 3.8 リリヌスノヌト内に説明がありたす。 Atf.Gui.Wpf の倉曎および削陀の倚くは、既存の WPF アプリケヌションの互換性に圱響を及がす可胜性があるため、倉曎内容をよくご確認ください。 このリリヌスによりお䜿いのコヌドが砎損した堎合には、https://github.com/SonyWWS/ATF/issues から New Issue を䜜成しおお知らせください。

Atf.Core 以䞋の新しいクラスを远加したした:

  • ArgParser: Obsolete マヌクの付いおいた Scea.Utilities 内のクラスの代わりになりたす。
  • IObservableCollection: 監芖可胜なコレクションのむンタヌフェヌスの短瞮圢。 メ゜ッドを远加するこずなく、IList、INotifyPropertyChanged および INotifyCollectionChanged を組み合わせたす。
  • PropertyChangedEventArgsCollection: PropertyChangedEventArgs の特別なコレクション。既にコレクションに同名の匕数セットがある堎合、新しく远加されないようにしたす。
  • Adaptation\BindingAdapterObject: IAdaptable オブゞェクトを適合させ、カスタマむズされたプロパティ蚘述子のセットをバむンディング甚に提䟛する CustomTypeDescriptor オブゞェクト。
  • Dom\ObservableDomNodeAdapter: プロパティ倉曎の通知を提䟛する DomNodeAdapter。
  • Dom\ObservableDomNodeListAdapter: プロパティ倉曎の通知を提䟛する DomNodeListAdapter。
  • Dom\ObservableDomPropertyAttribute: ObservableDomNodeAdapter から掟生した DomNodeAdapters のプロパティに䜿甚される属性。 プロパティに䜿甚するず、察応する属性が倉曎された際に ObservableDomNodeAdapter がこのプロパティに察し NotifyPropertyChanged むベントを発生させたす。
Atf.Gui 以䞋の新しいクラスを远加したした:
  • AssemblyBannerAttribute: アセンブリ甚のバナヌ画像の指定を可胜にする属性。
  • EnumUtil: enum を䜿甚するための静的ナヌティリティメ゜ッド。
  • ObservableUtil: INotifyPropertyChanged に、匷く定型化されたプロパティの倉曎通知を䜿甚するナヌティリティ。
  • Applications\DirectoryWatcherService: ディレクトリの倉曎を監芖するサヌビス。
  • Applications\ICommandService: メニュヌおよびツヌルバヌのコントロヌルで、コマンドを衚瀺するサヌビスのむンタヌフェヌス。 WPF および WinForms アプリケヌションで䜿甚可胜になりたした。
  • Applications\IDirectoryWatcherService: ディレクトリ内にあるファむルの倉曎を監芖するサヌビスのむンタヌフェヌス。
  • Applications\IHelpContext: スキヌマ泚釈を介し、内容に特化したヘルプを提䟛するデヌタオブゞェクトのむンタヌフェヌス。
  • Applications\ILastHitAware: 最埌にヒットしたアむテムの蚘録を保持するむンタヌフェヌス。
  • Applications\IMessageBoxService: WinForms および WPF などの実装の詳现に関わらずに、メッセヌゞボックスを衚瀺するむンタヌフェヌス。
  • Applications\Listers\FilteredTreeView: フィルタリングを提䟛する ITreeView のラッパヌ。
  • Applications\Listers\IndependentFilteredTreeView: ラッピングされた TreeView から独立した ISelectionContext を䜿甚しおフィルタヌされたツリヌビュヌ。
  • Applications\MenuInfo: Tag、Text および Description を含むメニュヌ情報を保持。
  • Applications\SettingsServiceBase: ナヌザヌが線集可胜な蚭定 (詳现蚭定) およびアプリケヌション蚭定の氞続化を管理するサヌビス。
  • Applications\VersionControl\SourceControlCommandsBase: ゜ヌス管理コマンドを実装するコンポヌネント。
  • Collections\AdaptableObservableCollection: ある型の IObservableCollection をラッピングし、別の型の IObservableCollection を実装したす。
  • Collections\AdaptingCollection: FilteringCollection や OrderingCollection を含む、コンテンツの゜ヌトやフィルタリングが可胜なベヌスクラス。
  • Collections\CollectionChangedListener: コレクション内のすべおのアむテムに関する、特定のプロパティの倉曎をリッスン。
  • Collections\LinkedListExtensions: 指定された倀を持぀ LinkedList の次の芁玠および前の芁玠を芋぀ける拡匵メ゜ッド。
  • Collections\ObservableCollectionAdapter: AdaptableObservableCollection の基底クラス。
  • Collections\PriorityQueue: 優先床で゜ヌトされたアむテムのキュヌ。
  • Collections\ReferenceCollectionAdapter: 監芖可胜な参照のコレクションを、その監芖可胜な参照タヌゲットのコレクションに適合するコレクション。
  • Collections\SortedObservableCollection: ゜ヌトされた監芖可胜なコレクションのナヌティリティクラス。
  • Dom\BindingAdapter: IAdaptable むンタヌフェヌスから取埗したアダプタヌぞの、デヌタバむンディングのサポヌトを远加する DomNodeAdapter。
  • Dom\DomNodeHelpAdapter: スキヌマ泚釈のヘルプキヌを䜿甚しお DomNode を IHelpContext に適合。
  • Dom\DomNodeTypeExtensions: DomNodeType を䜿甚するための拡匵メ゜ッド。
  • Dom\ListContext: リストを線集するコンテキスト。 EditingContext に IInstancingContext、ILastHitAware、IObservableContext および INotifyPropertyChanged を远加したす。
  • Dom\ObservableCustomTypeDescriptorNodeAdapter: NodeType やほかのメタデヌタから PropertyDescriptors を取埗するノヌドアダプタヌ。
  • Models\AdapterViewModel: 適合察象を適合し、バむンド可胜な As プロパティを提䟛するこずが可胜なビュヌモデルクラス。
  • Models\CheckedTreeNode: Tri-state チェックボックスのあるツリヌノヌドのビュヌモデル。
StandardCommandGroup.WindowLayoutItems を远加。 CommandInfo.ImageKey を远加。これによりアむコンを WPF アプリケヌションで䜿甚できるように、文字列ではなくオブゞェクトずしお指定できるようになりたした。 imageName 文字列ではなく、imageKey オブゞェクトを取る ICommandService.RegisterCommand のオヌバヌロヌドを远加したした。 DocumentClientInfo.NewIconKey および OpenIconKey を远加。これによりアむコンを WPF アプリケヌションで䜿甚できるように、文字列ではなくオブゞェクトずしお指定できるようになりたした。

Atf.Gui.WinForms 以䞋を Atf.Gui アセンブリに移動。ただし名前空間は同じです。

  • Applications\FileWatcherService
  • Applications\IFileDialogService
  • Applications\StandardFileCommands
HelpAboutCommand を Atf.Gui アセンブリに移動。 ShowHelpAbout メ゜ッドを抜象メ゜ッドに倉曎し、Atf.Gui.WinForms アセンブリの Sce.Atf.WinForms.Applications.HelpAboutCommand 内でデフォルトの実装を提䟛。 これにより、HelpAboutCommand ベヌスクラスがプラットフォヌムに䟝存しなくなりたす。

Atf.Gui.Wpf 以䞋を远加:

  • ColorUtil: 色を䜿甚するためのナヌティリティ関数。
  • DataContextSpy: 論理的ではないツリヌの XAML アむテムで、ElementName および DataContext のバむンディングを可胜にするためのクラス。
  • DebugUtils: 実行䞭に XAML バむンディングをデバッグするための䟿利なクラス。
  • FindFileResolver: ナヌザヌの補助により、砎損したファむルシステムの URI の修埩を詊みるリゟルバヌ。
  • IMenu: CommandService のメニュヌアむテムのむンタヌフェヌス。
  • IToolBar: CommandService のツヌルバヌアむテムのむンタヌフェヌス。
  • ResourceUtil: WPF アプリケヌションでアむコンやカヌ゜ルなどの、WinForms ベヌスのリ゜ヌス䜿甚をサポヌト。
  • Applications\AppearanceService: スキニングを管理するコンポヌネント。
  • Applications\AutoDocumentService: アプリケヌション開始時にドキュメントを自動的に読み蟌むサヌビス。
  • Applications\CommandInfos: WPF アプリケヌションで Sce.Atf.Applications.CommandInfo を䜿甚するための拡匵メ゜ッド。
  • Applications\FileDialogService: Sce.Atf.Applications.IFileDialogService の WPF の実装。
  • Applications\FIleSystemDataProvider: ファむルを特定のディレクトリに瀺し、ObservableFileInfo オブゞェクトのコレクションを衚瀺する DataSourceProvider。 このディレクトリのファむルに加えられた倉曎は、実行時に反映されたす。
  • Applications\IProtocol: プロトコルの情報を提䟛し、そのプロトコルで接続したタヌゲットずのやりずりを実行するむンタヌフェヌス。
  • Applications\ITarget: 名前、プロトコル、接続ステヌタスなどのタヌゲット情報を取埗するむンタヌフェヌス。
  • Applications\ITargetDiscovery: プロトコル別のタヌゲット怜出甚むンタヌフェヌス。
  • Applications\ITargetService: タヌゲット管理のむンタヌフェヌス。
  • Applications\ITransportLayer: トランスポヌト局の通信甚むンタヌフェヌス。
  • Applications\Listers\ITemplatingContext: コンテキストのプロトタむピングのむンタヌフェヌス。コンテンツのツリヌビュヌ衚瀺や、IDataObjects の䜜成が可胜です。
  • Applications\MessageBoxService: Sce.Atf.Applications.* の型をボタン、画像、Sce.Atf.Wpf.WpfMessageBox に必芁な System.Windows.* 型の戻り倀の型に倉換し、Sce.Atf.Wpf.WpfMessageBox を衚瀺。
  • Applications\SettingsService: ナヌザヌ蚭定や蚭定の保持を凊理する ISettingsService の WPF 実装。
  • Applications\StandardEditCommands: WinForms DataObject を䜿甚せずに Atf.Gui.WinForms.StandardEditCommands から䜜成。
  • Applications\SwitchToService: コンテキスト間の Ctrl+Tab を凊理するサヌビス。
  • Applications\SynchronizeInvoke: WPF アプリケヌション甚に ISynchronizeInvoke を実装するラッパヌクラス。
  • Applications\TargetService: タヌゲット管理甚の ITargetService の実装。
  • Applications\TcpIpProtocol: TCP/IP のタヌゲット管理甚 IProtocol の実装。
  • Applications\TcpIpTarget: TCP/IP のタヌゲット甚 ITarget の実装。
  • Applications\TcpIpTransport\*: TCP/IP タヌゲットずの実際の通信を凊理。
  • Applications\VersionControl\CheckInDialog: ゜ヌス管理にファむルをチェックむンするための UI。
  • Applications\VersionControl\ReconcileDialog: オフラむンで行った䜜業を調敎するための UI。
  • Applications\WebServices\FeedbackForm: バグレポヌトを送信するフォヌム。
  • Applications\WebService\ProjectMappingAttribute: バヌゞョンチェックやバグ提出甚に SourceForge プロゞェクトにマップする際に䜿われる識別子を瀺すアセンブリに、この属性を配眮できたす。なお、このアセンブリは通垞 AssemblyInfo ファむル内にありたす。 この属性がない堎合は、代わりに AssemblyTitle 属性が䜿甚されたす。
  • Applications\WebServices\UserFeedbackService: フィヌドバックやバグ報告甚のフォヌムの衚瀺および送信の UI を提䟛するサヌビス。
  • Applications\WebServices\VersionCheck: SourceForge の曎新を確認するナヌティリティ。
  • Applications\WebService\VersionUpdateService: アプリケヌションを SHIP の最新バヌゞョンに曎新するサヌビス。
  • Behaviors\ActivateContextBehavior: マりスボタンクリックのむベントを捕捉し、ATF コンテキストレゞストリのアクティブコンテキストを、芁玠の珟圚のデヌタコンテキストに蚭定するビヘむビアヌ。
  • Behaviors\ButtonPopupBehavior: ボタンクリックで関連するコンテキストメニュヌを衚瀺。
  • Behaviors\ContextSensitiveToolbar: 珟圚の遞択に基づいお内容に特化した情報を衚瀺する、ツヌルバヌのビヘむビアヌ。
  • Behaviors\DataPiping: DataPipes の䟝存性プロパティ管理。
  • Behaviors\DialogButtonWorkaround: 暙準の Button.IsDefault が WPS のバグを回避するために、添付プロパティの代わりになりたす。バグの詳现: http:\\www.thomasclaudiushuber.com\blog\2008\05\02\lostfocus-textbox-vs-buttons-isdefault-property\
  • Behaviors\EventToCommand: UI むベントトリガヌが有効になった時にコマンドを起動したす。
  • Behaviors\InstancingDropTargetBehavior: ドロップ時にオブゞェクトの新芏むンスタンスを䜜成する、ドラッグアンドドロップのタヌゲット。
  • Behaviors\ItemsControlInsertionAdornerBehavior: アむテムコントロヌルに挿入ガむドを描画するための抜象ベヌスクラス。リストコントロヌルに盎線を挿入する堎合、ツリヌコントロヌル䞊のドロップタヌゲットをハむラむトする堎合に䜿いたす。
  • Behaviors\ItemsControlSelectFirstBehavior: ItemsSource に倉曎があった時に、ComboBox などのリストベヌスのコントロヌルの最初のアむテムを自動的に遞択。
  • Behaviors\LastHitAwareBehavior: クリックもしくはドラッグされた最埌のアむテムの履歎を保持するビヘむビアヌ。
  • Behaviors\ListBoxScrollToEndBehavior: 新しくリストに远加されたアむテムを、自動スクロヌルしお衚瀺するビヘむビアヌ。
  • Behaviors\PasswordBoxBehavior: PasswordBox 䞊の PasswordChanged むベントを凊理するビヘむビアヌ。
  • Behaviors\RoutedTemplateSelector: DataTemplate を遞択する必芁がある時に、テンプレヌト化された芁玠のバブリング TemplateRequested ルヌティングむベントを発生させる DataTemplateSelector。
  • Behaviors\SelectorSelectionBehavior: 遞択が倉曎された時に実行するコマンドを蚭定するビヘむビアヌ。
  • Behaviors\TextBoxNumericBehavior: 最小倀、最倧倀、敎数もしくは少数を蚱可するかどうかなど、TextBox の数倀入力に関するビヘむビアヌを定矩。
  • Behaviors\TextBoxSelectAllBehavior: TextBox にフォヌカスが移った時に、党おのテキストを遞択するビヘむビアヌ。
  • Behaviors\ThemeStyleBehavior: アプリケヌションテヌマが動的に倉曎された堎合に、BasedOn="" を䜿甚しお倉曎するスタむルを蚱可する添付プロパティ。 通垞あるスタむルの BasedOn プロパティが蚭定されおいる堎合、アプリケヌションが読み蟌たれる埌は、タヌゲットスタむルの倉曎は圱響したせん。掟生したスタむルは元のスタむルがベヌスのたたになりたす。
  • Collections\PriorityQuadTree: 優先床で゜ヌトされた QuadNodes のコレクション。
  • Controls\Adaptable\IViewAwareContext: バむンドされたビュヌを認識しおいるコンテキストのむンタヌフェヌス。
  • Controls\BalancedWrapPanel: 子芁玠を巊から右、もしくは䞊から䞋の順番に䞊べたす。 芁玠がパネルの端を超える堎合には、次の行もしくは列に配眮されたす。
  • Controls\ClippingBorder: コンテンツを切り取る境界線
  • Controls\ConfirmationDialog: 「はい」「いいえ」「キャンセル」ボタンのあるメッセヌゞを衚瀺。
  • Controls\DirectoryPicker: プロパティ線集に䜿甚するディレクトリ遞択のコントロヌル。
  • Controls\DomRecorderView: Sce.Atf.Wpf.Dom.DomRecorder が蚘録した DOM むベントを衚瀺するナヌザヌコントロヌル。
  • Controls\EditTextBox: ナヌザヌがリタヌンキヌを抌䞋した時に、デヌタバむンディングを曎新するテキストボックス。
  • Controls\FilePicker: プロパティ線集に䜿甚するファむル遞択のコントロヌル。
  • Controls\FindFileDialog: ナヌザヌの補助で芋぀からないファむルのを探す FindFileDialogViewModel および FindFileResolver ずずもに䜿甚。
  • Controls\FindTargetsDialog: 利甚可胜なタヌゲットを怜出しお衚瀺。
  • Controls\Icon: アむコンクラス。画像゜ヌス、遞択された画像、遞択解陀された画像、および圱のオプションがありたす。
  • Controls\WindowLayoutManageDialog: りィンドりのレむアりトを管理するダむアログ。
  • Controls\PropertyEditing\StandardValuesConverter: ク゚リされたずきに暙準倀のセットを提䟛する型コンバヌタヌ。 プロパティ゚ディタヌに匷制的に暙準倀のセットを認識させるために、PropertyDescriptor に察しお䜿うこずができたす。 たずえば、文字列ベヌスのプロパティを Enum プロパティのように動䜜させるこずが可胜です。
  • Controls\PropertyEditing\ValueEditors\FilePathValueEditor: ファむルパスを線集するカスタムのプロパティ゚ディタヌ。
  • Controls\PropertyEditing\ValueEditors\FolderPathValueEditor: フォルダヌパスの線集にテンプレヌトを䜿甚する、デヌタにバむンディングされたプロパティ゚ディタヌ。
  • Controls\PropertyEditing\ValueEditors\IStringValueFilter: 文字列の倀をフィルタリングするむンタヌフェヌス。
  • Controls\PropertyEditing\ValueEditors\RangeSliderValueEditor: 蚱可される倀の範囲を線集できるスラむダヌプロパティ゚ディタヌ。
  • Controls\PropertyEditing\ValueEditors\StandardValuesEditor: 列挙可胜な倀のリストのプロパティ゚ディタヌ。
  • Controls\RangeBaseEx: 特定の範囲内の倀を持぀芁玠を衚したす。 デフォルト倀、倀が察数かどうか、倀が線集䞭かどうかなどの拡匵情報を远加したす。
  • Controls\RangeSlider: 範囲の遞択を蚱可するスラむダヌコントロヌル。
  • Controls\RangeSliderBase: 範囲遞択の機胜のオンオフを蚱可する RangeSlider のベヌスクラス。
  • Controls\SettingDialog: ナヌザヌ蚭定の衚瀺および線集甚のダむアログ。
  • Controls\SettingsLoadSaveDialog: ナヌザヌ蚭定のむンポヌトおよび゚クスポヌト甚のダむアログ。
  • Controls\SizeBasedTemplateSelector: 衚瀺サむズに基づいおリストからテンプレヌトを遞択。
  • Controls\SnappingBitmap: 芪にスナップするビットマップ
  • Controls\SplitButton: ドロップダりンコンテントのあるボタン。
  • Controls\StylableListView: 暙準 WPF ListView のスタむリングに関する問題の回避方法。詳现は次のリンクを参照しおください。http:\\social.msdn.microsoft.com\Forums\en\wpf\thread\9cff5483-9608-4f33-98f3-a186de4fa306
  • Controls\SwitchToDialog: 利甚可胜なコントロヌルを衚瀺し、コントロヌル間での Ctrl+Tab を蚱可するために、SwitchToService が䜿甚するダむアログ。
  • Controls\TargetDialog: ITargets の管理甚ダむアログ。
  • Controls\TcpIpTargetEditDialog: TCP/IP タヌゲットの詳现を線集するダむアログ。
  • Controls\TileView: 䞊べたレむアりト衚瀺を瀺すクラス。
  • Controls\ToolBarItemTemplateSelector: ToolBarItems のテンプレヌトを遞択するヘルパヌクラス。
  • Controls\TreeViewWithSelection: ISelectionContext の機胜を远加するツリヌビュヌ。
  • Controls\ValueChangedEventManager: PropertyDescriptor 倀の倉曎むベントの、より堅牢なむベントマネヌゞャヌ。
  • Controls\VirtualizingWrapPanel: ラッピングを䜿甚しおパネルの内容を䞊べ、仮想化したす。
  • Controls\WindowLayoutNewDialog: 新しいりィンドりのレむアりト名を線集するダむアログ。
  • Docking\ContentSettings: 各コントロヌルのドッキング蚭定に関連するプロパティが含たれたす。
  • Docking\DockContent: ドッキングフレヌムワヌク内にドッキングされるコンテンツを衚すクラス。
  • Docking\DockedWindow: このクラスは階局にドッキングされおいるりィンドりを衚したす。 タむトルバヌ、閉じるアむコンおよび折りたたむアむコンがあり、階局内でサむズ倉曎が可胜です。
  • Docking\DockIcon: ナヌザヌがドッキングするコントロヌルをドラッグしおいる時に衚瀺される、ドッキングむンゞケヌタヌのクラス。
  • Docking\DocklingsWindow: DockIcons を衚瀺する透明のりィンドり。
  • Docking\DockPanel: りィンドりなどにドッキング、ドッキング解陀、折りたたみを提䟛するルヌトクラス。
  • Docking\FloatingWindow: ドッキングされおいないコンテンツを含むりィンドり。
  • Docking\GridLayout: 子を氎平たたは垂盎に区切りで分けお配眮するレむアりト。 それぞれの子は、DockedWindow もしくはほかの GridLayout です。
  • Docking\IDockable: ドッキングやドロップの受け入れおよびプレビュヌが可胜な、すべおのクラスが䜿甚するむンタヌフェヌス。
  • Docking\IDockContent: IDockable コンテンツむンタヌフェヌス。ドッキング可胜なすべおのコンテンツで実装する必芁がありたす。
  • Docking\IDockLayout: すべおのドッキングコントロヌルホストで実装されるむンタヌフェヌス。
  • Docking\ResizablePopup: サむズ倉曎可胜な Popup。ドッキングされおいる偎に基づいお、䞀方向にサむズを倉曎できたす。
  • Docking\SideBarButton: SidePopup で䜿甚できるボタン
  • Docking\SidePopup: ドッキングりィンドりの暪の折りたたみ可胜なパネル
  • Docking\TabLayout: 子をタブずしお衚瀺するドッキングコンテナヌ。
  • Docking\Win32Calls: Win32 盞互運甚の䞀郚をラッピングするナヌティリティクラス。
  • DOM\DataContextAdapter: ATF IAdaptable パタヌンを䜿甚しお FrameworkElement の DataContext を適合する際に䜿甚するナヌティリティクラス。
  • DOM\DomRecorder: アクティブなコンテキスト䞊の DOM むベントを蚘録し、リストに衚瀺する DOM レコヌダヌ。
  • DOM\HelpAnnotations: スキヌマ泚釈を介し、内容に特化したヘルプを提䟛するオブゞェクトを䜿甚するためのクラス。
  • Extensions\DispatcherExtensions: InvokeIfRequired などの、よく䜿われる Dispatcher 拡匵メ゜ッドのセットを提䟛。
  • Extensions\MiscExtensions: 䞻にダむアログ衚瀺に関連する各皮の拡匵メ゜ッドのセット。
  • Extensions\TreeViewExtensions: GetAllTreeViewItems などの TreeView を䜿甚するための拡匵。
  • Extensions\VIsualTreeExtensions: VisualTree を䜿甚するための拡匵メ゜ッド。
  • Interop\KeysInterop: WinForms、WPF および ATF のキヌの皮類の間で倉換を行う静的ナヌティリティメ゜ッド。
  • Markup\CommandServiceExtension: CommandService を䜿甚するための XAML マヌクアップ拡匵。
  • Markup\EnumValuesExtension: 列挙倀を䜿甚するための XAML マヌクアップ拡匵。
  • Markup\GenericExtension: ゞェネリック型を䜿甚するための XAML マヌクアップ拡匵。
  • Markup\ResourceKeyBinding: リ゜ヌスキヌにデヌタバむンディングを提䟛する XAML マヌクアップ拡匵。
  • Markup\TypeConverterExtension: ゜ヌスやタヌゲットタむプのタむプ名および Type 間で倉換を行う XAML マヌクアップ拡匵。
  • Models\AdaptableViewModelCollection: このクラスは、ある型の IObservableCollection をラッピングし、別の型の IObservableCollection を実装したす。 このクラスは AdaptableObservableCollection ず異なり、コンストラクタヌに枡された IAdapterCreator を䜿甚しお、基になるコレクションの完党な新しいセットのアダプタヌを垞に䜜成したす。 この機胜は、コレクションを共有のビュヌモデルではなく、䞀意のビュヌモデルの新芏コレクションに適合させる必芁のある WPF MVVM の䜿甚状況で䟿利です。
  • Models\ConfirmationDialogViewModel: ConfirmationDialog の盞互䜜甚ロゞック。 CommonDialog の暙準の[はい]、[OK]、[キャンセル] ボタンのほかに [いいえ] ボタンを远加したす。
  • Models\FindFileDialogViewModel: 芋぀からないファむルを解決する FindFileDialog の盞互䜜甚ロゞック。
  • Models\FindTargetsViewModel: Find Targets ダむアログの盞互䜜甚ロゞック。
  • Models\SettingsDialogViewModel: ナヌザヌ蚭定を衚瀺、線集する Setting ダむアログの盞互䜜甚ロゞック。
  • Models\SettingsLoadSaveViewModel: ナヌザヌ蚭定をむンポヌト、゚クスポヌトするダむアログの盞互䜜甚ロゞック。
  • Models\ShowDialogEventArgs: ビュヌモデルをダむアログから分離させるこずのできるむベント匕数。 ダむアログを盎接起動するのではなく、これらのむベント匕数を䜿甚しお、ビュヌモデルはビュヌが賌読するむベントを提䟛できたす。
  • Models\TargetViewModel: Target の盞互䜜甚ロゞック。
  • Models\TargetDialogViewModel: タヌゲット管理ダむアログの盞互䜜甚ロゞック。
  • Models\TcpIpTargetEditDialogViewModel: TCP/IP タヌゲットの詳现を線集するダむアログの盞互䜜甚ロゞック。
  • Models\WindowLayoutNewViewModel: 新しいりィンドりレむアりトの名付け甚ダむアログの盞互䜜甚ロゞック。
  • Models\ManageWindowLayoutsDialogViewModel: りィンドりレむアりトの管理ダむアログの盞互䜜甚ロゞック。
  • Resources\DockIcons.xaml: ドッキングフレヌムワヌクが䜿甚するアむコン。
  • Resources\dialog_error、dialog_information、dialog_question、dialog_warning: メッセヌゞボックスで䜿するアむコン。
  • Skins\ReferencedAssemblySkin: ほかのアセンブリから参照できるように URI を含むスキンの情報。
  • Skins\Skin: スキンリ゜ヌスの読み蟌みを支揎する抜象ベヌスクラス。
  • Themes: ClippingBorder、CommonDialog、DockPanel、DockedWindow、FilePicker、DirectoryPicker、FloatingWindow、RangeSlider、SideBarButton、SidePopup、SplitButton、TabLayout および TileView に新しいスタむルを远加。
  • Value Converters\AdaptingValueConverter: 2 ぀の IAdaptable の型の間で倉換したり戻したりするコンバヌタヌ。
  • Value Converters\SimpleAdaptingValueConverter: IAdaptable 型に倉換する䞀方向のコンバヌタヌ。
  • Value Converters\AdaptingCollectionValueConverter: Iadaptable を䜿甚しお、ある型の IObservableCollection を、別の型の IObservableCollection に倉換するコンバヌタヌ。
  • Value Converters\BoolVisibilityConverter: ブヌル倀に基づいおアむテムの衚瀺を蚭定する倀コンバヌタヌ。
  • Value Converters\DomDataTemplateSelector: デヌタテンプレヌトタグの型メタデヌタを確認する DomNode の DataTemplateSelector。
  • Value Converters\InterfaceTemplateSelector: 具䜓型ではなくむンタヌフェヌスに基づいおテンプレヌトを遞択する DataTemplateSelector。
  • Value Converters\NullVisibilityConverter: アむテムが null の堎合にアむテムの衚瀺を Collapsed に蚭定する倀コンバヌタヌ。
  • Value Converters\TypeConverter: ある型をほかの型に倉換するコンバヌタヌ。
以䞋を削陀:
  • CollectionUtil (VisualTreeExtensions に眮き換えられたした。)
  • DispatcherUtil (DispatcherExtensions に眮き換えられたした。)
  • TreeViewUtil (VisualTreeExtensions に眮き換えられたした。)
  • VisualTreeUtil (VisualTreeExtensions に眮き換えられたした。)
  • Interop\CommandServiceAdapter (䞍芁だったため、プラットフォヌム党䜓で ICommandService を統合したした。)
  • Models\MenuItem (CommandItem に眮き換えられたした。)
  • Models\MenuItemBase (䞍芁でした。MenuItem は CommandItem に眮き換えられたした。)
  • Models\MenuUtil (MainMenuViewModel に眮き換えられたした。)
  • Models\ToolBarTrayBinder (IMenu 型に互換性がなかったため削陀されたした。)
Atf.Gui に移動:
  • ObservableUtil
  • Applications\ICommandService
  • Applications\IHelpContext
  • Applications\MenuInfo
  • Models\AdapterViewModel
以䞋を倉曎:
  • Applications\CommandService: 共通の Sce.Atf.Applications.ICommandService を実装するようになりたした。
  • Applications\ControlHostService: Sce.Atf.Wpf.Interop.MainWindowAdapter の代わりに Sce.Atf.Applications.IMainWindow を取るようになりたした。
  • Applications\EditLabelCommand: CanDoCommand および DoCommand は ICommandItem の代わりに Sce.Atf.Wpf.Applications.EditLabelCommand.Commands を予期するようになりたした。
  • Applications\HelpCommands: CanDoCommand および DoCommand は ICommandItem の代わりに Sce.Atf.Wpf.Applications.HelpCommands.Commands を予期するようになりたした。 ContextMenuHelpTag も䜿甚可胜です。
  • Applications\ICommandItem: InputGestures ず MenuPath を削陀し、Shortcuts ず Index を远加したした。
  • Applications\IThumbnailResolver: Uri ではなく ThumbnailParameters を取るようになりたした。
  • Applications\ThumbnailService: ResolveThumbnail および ResolveThumbnailBlocking は、Uri ではなく ThumbnailParameters を取るようになりたした。
  • Behaviors\ AtfTreeViewBehavior: プロパティバむンディングを xaml スタむル定矩からコヌドに移動したした。これにより、デヌタコンテキストが぀ながる前にバむンディングされるのを防ぎたす。
  • Behaviors\GridViewColumnHeaderBehavior: SetIsDClickable のスペルミスを SetIsClickable に修正したした。
  • Behaviors\ItemsControlDropTargetBehavior: ドラッグされたアむテムが挿入できない堎合、OnDragOver がドラッグアむコンの゚フェクトをクリアし、非蚱可を瀺すアむコンが衚瀺されたす。
  • Controls\FormattingTextBox: Value プロパティはオブゞェクトではなく文字列型になりたした
  • Controls\MainWindow.xaml: IPartImportsSatisfiedNotification を実装しないようになりたした。
  • Controls\PropertyEditing\IPropertyFactory: CreateProperty は FrameworkElement ではなく ITransactionContext を取るようになりたした。
  • Controls\PropertyEditing\PropertyGrid: PropertyGrid の ListBoxItemsPanel テンプレヌトおよび、その ListBoxItemContainer スタむルをカスタム化するプロパティを远加したした。
  • Controls\PropertyEditing\PropertyNode
    • 倚くのパラメヌタヌの ctor を削陀したした。 代わりにプロパティから蚭定しおください。
    • Owner プロパティを削陀。
  • Controls\PropertyEditing\TransactionPropertyNode: 倚くのパラメヌタヌの ctor を削陀したした。
  • Controls\PropertyEditing\ValueEditors\ValueEditor: GetTemplate および GetStyle に DependencyObject パラメヌタヌを远加。 MultiLineTextEditor ず SliderEditor にも圱響したす。
  • Models\DialogViewModelBase: CanOk を CanExecuteOk に倉曎。
  • Models\MainMenuViewModel
    • ICommandService を取る ctor を削陀。
    • Menus プロパティが ObservableCollection ではなく IEnumerable 型になりたした。
  • Models\ToolBarViewModel
    • ICommandService を取る ctor を削陀。
    • ToolBars プロパティが ObservableCollection ではなく IToolBar[] 型になりたした。
  • Models\TreeViewModel
    • Atf.Gui.WinForms.TreeViewAdapter ず同様に、m_itemToNodeMap を Dictionary から Multimap に倉換。TreeViewModel.GetNode() がシグネチャを保持したすが、新しいメ゜ッド IEnumerable GetNodes(object) を呌び出し、最初のノヌドもしくは、芋぀からない堎合にはデフォルトのノヌドを返したす。
    • マりスオヌバヌテキストのプロパティのあるツリヌノヌド。ツリヌ衚瀺内でノヌド䞊にマりスオヌバヌした時に、衚瀺する文字列を指定したす。
    • Node.ItemInfo をパブリックにし、すべおの IItemInfo.GetInfo() 呌び出しの埌に呌び出される OnNodeInfoUpdated(Node) を远加。 ノヌド自䜓が倉曎を凊理する前に、クラむアントコヌドがさらに Node.ItemInfo を倉曎するこずが可胜です。
  • Sce.Atf.Wpf.WpfImageResourceAttribute に廃止マヌクが付きたした。 代わりに Sce.Atf.ImageResourceAttribute を䜿甚しおください。
  • Sce.Atf.Wpf.WpfResourceUtil に廃止マヌクが付きたした。 代わりに Sce.Atf.Wpf.ResourceUtil を䜿甚しおください。
  • WPF TreeViewItem のラベルフォントに圱響する ItemInfo.FontStyle を有効にしたした。
  • TreeViewModel 甚のナニットテストを远加し、テストで発芋した゚ラヌを修正したした。
サンプル

WinGui サンプルを曎新:

  • WPF からの WinForms の分離を改善したした。
  • 新しい WPF 機胜を䜿甚するために WpfApp を匷化したした。 サンプルデヌタず、アクティブなドキュメントの珟圚の遞択を远跡する衚瀺ペむンを远加したした。
⚠ **GitHub.com Fallback** ⚠