Skip to content

Authoring Tools Framework 3.7 RELEASED

Gary edited this page Mar 10, 2015 · 8 revisions

日本語の翻訳は、英語に続く後半をご覧ください。

The Authoring Tools Framework (ATF) 3.7 Release has many improvements and bug fixes, reflecting six months of work and client contributions. There are some minor compile-time breaking changes that are unlikely to affect anyone. Please see below for details.

Table of Contents

Top New Features

Many usability and stability enhancements to CircuitEditor, particularly with circuit groups.

Most user interface text is now available in Japanese, especially in the CircuitEditor.

Added a new sample app, “DOM Property Editor”, that demonstrates the use of all the various property editing controls. This replaces the old Property Editing 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.

Breaking Changes

ISettingsService (in both the Sce.Atf.Applications and Scea.Editors.Services namespaces) has a new event called Loading, so that client code can know when a group of settings is about to be loaded. This new event complements the existing Reloaded event. Client code can now know when all persisted settings are being restored, in case there are dependencies between the settings. We think it is very unlikely that clients have implemented ISettingsService, but if they have, this new event simply needs to be raised before any settings files are loaded.

Sce.Atf.Dom.TemplateReference has been removed because it was too simple and wasn't useful enough and wasn't used by the CircuitEditor sample app. We think this breaking change is very unlikely to affect anyone.

Bug Fixes and Improvements

Source Control/Perforce Service:

  • PerforceService now makes use of the Perforce company's new C# bindings API P4API.NET version 2013.2, to replace the out-of-date and no longer supported open source project P4.Net. The switch allows the service to work with latest Perforce features (e.g. streams).
  • All PerforceService source control operation methods (CheckOut, CheckIn, Revert, etc.) are now asynchronous, processed in a BackgroundWorker.
  • CodeEditor sample app added OutputService to log Perforce service messages.
  • Code editor now reloads document when it is notified that the document's source control status has changed to 'checked in'. Allows editor view to update contents after reverting a checked out and modified file.
  • PerforceService - When SettingsService is in the middle of loading and assigning settings, cache off assignments to 'Enabled', 'DefaultConnection', and 'ConnectionHistory' properties. Apply these cached values, in the correct order, after SettingsService has completed loading.
  • PerforceService: fixed a crash that could happen when reverting a file.
  • Extend 'Loading' event, recently added to ISettingsService, to legacy ISettingsService. Have legacy PerforceService hook into Loading (and Reloaded) events.
  • If the source control status of a file is requested, and that file has been deleted from the source control server, its status is now specified as ‘NotControlled’ instead of ‘Deleted’. ‘Deleted’ now means that the user has deleted the file locally but has not yet committed the change.
  • Source control status icons on files are now updated correctly if the source control service is disabled.
  • Replaced Connection.get with operation-specific methods on m_connection.
  • Created DestroyConnection, to guarantee m_connectionInitialized is set to false when m_connection.Disconnect() is called.
  • Submit a dummy command result when P4Command.Run() throws an exception.
  • UpdateFileInfoCache() - for refresh items that didn't return a record from P4, only send OnStatusChanged if that item previously was under P4.
  • Refresh Project Editor source control status when a new file is added.


Localization:

  • Fixed and improved the LocalizableStringExtractor development tool (added a way to edit the list of assemblies, added logging of the progress).
  • The Localize() extension method can only be used on string literals, so fixed a bunch of places where it was being called on local variables or parameters.
  • Projects now use an embedded Localization.xml file, rather than having a uniquely named file per project, just to be more consistent.
  • Multiple translations for the same original string are now supported, as long as each context string is unique.
  • Made more user-readable strings to be localized.
  • In RecentDocumentCommands, there was a problem where the user-readable document type name was being persisted in the user settings and was preventing the document from being loaded if the computer's language setting changed. This type name is no longer persisted and instead the IDocumentClients are searched (there is usually just one and rarely more than two or three) to see if CanOpen() works.
  • Lots of localization work was done to support translating ATF to Japanese.
  • Fixed Japanese localization issue with TimelineEditor that caused problems with the recent files list after changing languages.


Circuits/Circuit Groups:

  • In CircuitValidator.AddNode, disabled the history context's default behavior of automatically combining attribute setting operations, as it was causing incorrect behavior for certain operations such as grouping pin index changes.
  • Changed GroupPinEditor.AdjustLayout() from internal to public so it is accessible for some functional tests.
  • CircuitEditingContext fixed multiple enumeration bugs in the Move() method.
  • CircuitControlRegistry:
    • CircuitNodeControls getter to retrieve all DomNode/circuit-control pairs (use-scenario: selection changes in animation tree view will adjust selections in the graph view if applicable; note each view has its own selection context).
    • GetCircuitControlInfo() is a new method that takes a DomNode and returns information about the circuit control associated with that DomNode.
    • Renamed private docNode_AttributeChanged() to protected virtual OnDocumentNodeAttributeChanged().
  • Fixed a bug in promoting selected items to template library caught by TestTemplates test script.
  • Added drag selection of multiple subnodes in an expanded group.
  • Use local bounds for resizing a group.
  • When a group is expanded, it can now only be dragged by clicking its title bar, not its background.
  • In node picking logic, skip hidden nodes.
  • Fixed an infinite loop that can be caused by dragging a circuit element into an expanded circuit group, and then resizing the expanded circuit group.
  • Added support for drawing wires in polyline (in addition to Bezier).
  • Added D2dCircuitRenderer.MaxCollapsedGroupPinNameLength to allow client code to specify the maximum displayed length for pin names on a collapsed circuit group. If a pin name is longer than this when the group is collapsed, then the displayed pin name will be truncated and shown with an ellipsis. The default is 25 characters and the minimum is 5 characters.
  • Added support to allow wires to be connected directly between an external element and an internal element of a circuit group .
  • Fixed cannot create connection between items within different groups.
  • Set the visibility of newly created group pins to ShowExpandedGroupPins for unconnected pins.
  • CircuitEditingContext added SupportsNestedGroup property to make easier to toggle on/off the feature.
  • Make group resizing undoable in CircuitEditor.
  • Fixed crash on dragging a node out of a group when the node has connections to other nodes in the group.
  • Made resizing groups by dragging their edges work correctly.
  • Fixed a crash when toggling "Hide unconnected pins" on a template instance using rapid mouse clicks.
  • Circuit group added explicit implementation of ICircuitElementType.Name to differentiate the group node type name from group node name. Removed ProxyElementType class which was backported from Creature Editor for customizing group type names but caused other problems. Explicit implementation solves the same problem in a simpler way.
  • D2dCircuitRenderer initializes MaxCollapsedGroupPinNameLength to 25. The value was left to default 0 previously, caused text trimming even for short group pin names.
  • The Element’s AllInputPins and AllOutputPins properties are now virtual, and are overridden by the Group. The Group now considers hidden pins in these overrides, in order to fix a crash.
  • Circuit grouping: update hit path for draggingContext before querying its EditableGraph because the latter is depending on former.
  • Legacy CircuitEditor: removed the two circuit group commands (Group and Ungroup), because they never were fully implemented.
  • 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.


Property Editing:

  • GridView (used by the spreadsheet-style property editor): fixed a bug with the automatic scrolling when the user unselects a row while many other rows are still selected and some of them are off screen. It's not clear what selected row, if any, should be scrolled to when this happens, so simply disabled automatic scrolling in this situation.
  • PropertyView now observes IsBrowsable (specified in the BrowsableAttribute) value of a descriptor.
  • Replaced TrackBar used in IntInputControl and FloatInputControl with compact spinner. The compact spinner occupies less space and is easier to use. The freed space is given to the InputBox.
  • PropertyEditor:
    • Handled OnBackColorChanged for NumericMatrixControl and NumericTupleControl.
    • Draw label for NumericTupleControl.
  • Added new sample: DomPropertyEditor
  • Bug fixes in EmbeddedCollectionEditor:
    • Undo/redo and up/down did not work correctly for child objects.
    • When adding a new item after deleting an item, the new item did not show up.
    • Fixed DomPropertyEditor sample app doesn't run on Windows® 8. This was due to a reentrancy problem.
  • Adjusted value changes for mouse speed in BoundedFloatEditor and BoundedIntEditor.
Other Changes:
  • Added/moved license info for third party components to ThirdParty directory.
  • ModelViewer sample app: fixed a problem where model files could not be re-opened in the same session.
  • ISettingsService and SettingsService: added the Loading event, so that client code can know when a group of settings is about to be loaded and set. This is a minor breaking change. It is very unlikely that clients have implemented ISettingsService, but if they have, this new event simply needs to be raised before any settings files are loaded.
  • TreeList:
    • TreeListViewAdapter: fixed a couple of crashes with the IObservableContext's Reloaded event handler, when the TreeListViewAdapter is in virtual mode.
    • TreeListEditor sample app: Added the Reload button to the Virtual List editor. Fixed the recursive-check-boxes button enum to be a 1-bit flag instead of accidentally reusing the flags from two other buttons.
    • Add additional DrawBackground() method that passes in the Node.
    • TreeControl now supports tool tips. These tool tips can be seen in the CircuitEditor, FSMEditor, StatechartEditor, and TimelineEditor sample apps, in the item palette.
  • DoTransaction() extension method skips doing the transaction and the End call if the transaction is canceled in the call to Begin.
  • DomXmlWriter:
    • Added ShouldWriteAttribute() method so clients can selectively write or skip some attribute values, regardless of whether they are set to the default value.
    • Made WriteChildElementsRecursive() virtual so client code can override.
  • ErrorDialogService now shows the type of error (error, warning, info) in the dialog title.
  • Context-sensitive online help is now available by associating a URL per registered Control or Command, or by using the new WebHelp class. WebHelpCommands is a new class (and MEF component) that will provide a menu command for opening a URL that gives top-level help for the app. Many GUI components of ATF now provide context sensitive help such that when the user presses F1 with that GUI component or menu/toolbar command having focus, an appropriate URL will be opened.
  • Removed Sce.Atf.Dom.TemplateReference from Framework and from the CircuitEditor sample app. This is a breaking change that is unlikely to affect anyone.
  • Extended ISelectionPathProvider to support copy-on-edit for templated instances.
  • Removed the "p4 edit" commands from these batch files that are used to generate C# DOM-related code from schema files. ATF doesn't use Perforce as our source code repository any more.
  • DomTreeEditor sample: Add attributes with various value editors to demonstrate these editors. Add ParseAnnotations() method to SchemaLoader so it can parse annotations in XML schema.
  • Several improvements to ControlHostService.
    • Exposed DockAreas to restrict where Panes can be docked.
    • Removed restriction preventing Panel's portions height from being set from SetPanelPortion method.
  • TimelineCommands.cs: Commands for removing items were not appearing in the Edit menu; changed null menuTag parameter to StandardMenu.Edit in RegisterCommand(). These commands were not undoable, so added transactions to ICommandClient.DoCommand() for them. Program.cs: Added AutoDocumentService component so last document open would reopen when starting sample.
  • Curve Editor:
    • The CurveEditor now updates when undoing setting tangent type.
    • Unified tangents are now treated as a rigid body.
    • Added new static property to Curve: EnforceCurveLimits.
  • Added FixedRemoteTestingPort property to FunctionalTestBase to accommodate CTE test custom behavior.
  • Added TagConsoleOutput property to FunctionalTestBase to turn on/off the tags that distinguishes the console output from test script vs. from the application.
  • Added method to convert docking panel portions to use absolute dimensions instead of relative. Old saved layouts are converted when DockPanelState is set.
  • Changed expanders in a few controls to have a more modern look (tree, propertyEditor, etc.).
  • Added the following:
    • D2dGraphics:
      • public D2dBitmap CreateBitmap(int width, int height)
    • D2dBitmap:
      • public System.Drawing.Bitmap GdiBitmap
      • public void Update()
    • D2dFactory:
      • public static D2dBitmap CreateBitmap(int width, int height)
  • Integrated improvements to the scripting command console, ConsoleTextBox:
    • Auto-complete suggestions.
    • Improved multi-line support
    • ArgumentOutOfRangeException when moving past prompt.
    • Selected text not being correct when selecting next/previous word.
    • Cursor getting stuck when selecting.
    • Suggestion ListBox showing in wrong place.
    • Indentation not working when in middle of multi-line statement.
    • Cleaned up incorrect uses of SelectionStart when CaretIndex should be used.
    • Fixed Home and End commands when outside of prompt.
  • Fixed bug: EnumUtil.GetEnumData would assert on enum declarations containing two or more entries with the same value. Fix ignores all but the first of same-value entries. This may be problematic for client code needing *all* entries of an enum type declaration. If so, result.DisplayStrings should be made a multimap, and this change can be removed. However, doing so might be a breaking change.
  • Added additional utility scripting variables:
    • 'atfSourceControl', if not null, will be a SourceControlService object.
    • 'atfLayout', if not null, will be a IWindowLayoutService object.
  • Incorporated a change from Guerrilla. RecentDocumentCommands, when a debugger is attached, will no longer remove documents from the list that fail to open.
  • IronPython does not support Ctrl+Shift navigation: Added (Ctrl|Ctrl+Shift)+End and (Ctrl|Ctrl+Shift)+Home to jump to beginning/end of lines/command.
  • IronPython 'Cut' shortcut can remove submitted commands: Regex for splitting text into word blocks now groups non-word characters and includes trailing whitespace with word blocks.
  • Disabled cut/copy/paste in CurveEditor. These operations are not well-defined for curves.
  • Fixed: Incorrect sorting in System Info dialog. Use Tag field for comparing Version and DateTime columns.
  • DomNode.Copy() now has passed-in map parameter to ease client code of custom clone logic after the clone.
  • Updated/cleaned-up/clarified the Wws.UI license.txt file.
  • Removed the PropertyEditing sample app, as it has been replaced by the DOMPropertyEditor sample app.
Documentation:
  • Sweeping changes have been made to the ATF Programmer’s Guide at ATF Programmer's Guide. Tons of new content has been added, and the existing content has been extensively reorganized, rewritten, and clarified.
  • Added the export of our Programmer Guide wiki pages. This is useful for clients without SHIP accounts.
以下日本語訳*Authoring Tools Framework (ATF) 3.7 リリースには、6 ヶ月間の作業とクライアントからの協力により、多くの改良およびバグ修正が含まれています。 コンパイル時に関しては、互換性が失われる細かい変更点がありますが、影響の出る可能性の低い変更です。 詳細は、以下を参照してください。

主要な新機能

特に回路グループについて、CircuitEditor のユーザビリティおよび安定性に関する多数の強化。

CircuitEditor をはじめとする、大部分のユーザーインターフェイスを日本語化。

新しいサンプルアプリケーション「DOM Property Editor」を追加。さまざまなプロパティ編集コントロールすべての使用方法を参照できます。 これは、従来の Property Editing サンプルアプリケーションに代わるものです。

Windows® 8 および Windows® 8.1 との互換性

すべてのサンプルアプリケーションは、Windows® 8 および Windows® 8.1 上で正常に動作しています。 唯一の問題として、Direct2D のパフォーマンスが Windows® 7 上に比べて大抵遅く、ばらつきがあります。Windows® 8 に比べると Windows® 8.1 上の方が、全体的に良いパフォーマンスが出ています。 (詳細はトラッカーの項目を参照してください。) 新しいドライバーがリリースされるにつれ、段階的なパフォーマンスの向上が期待されます。

互換性に影響する変更点

Sce.Atf.Applications および Scea.Editors.Services の両方の名前空間で、ISettingsService に Loading という新しいイベントがあります。これにより、クライアントコードに、直後に設定が読み込まれることが伝わります。 このイベントは、既存の Reloaded イベントを補完します。 両方の設定間に依存性があった場合、すべての保持された設定が復元されたことが、クライアントコードに分かるようになりました。 クライアントが ISettingsService を実装している可能性は低いですが、実装している場合には設定ファイルを読み込む前に Loading イベントを発生させる必要があります。

Sce.Atf.Dom.TemplateReference は簡単すぎて実用には不十分であり、CircuitEditor のサンプルアプリケーションでも使用されていないため、削除されました。 この変更により互換性が失われる部分がありますが、影響が出る可能性はほとんどありません。

バグ修正および改良点

ソース管理/Perforce サービス:

  • PerforceService が、Perforce 社の新しい C# バインディングの API P4API.NET バージョン 2013.2 を使用するようになりました。サポート期限切れの、古いオープンソースプロジェクトの P4.Net の使用は終了します。 この変更により、サービスがストリームなどの最新の Perforce 機能を使用できるようになりました。
  • すべての PerforceService によるソース管理のメソッド (CheckOut, CheckIn, Revert など) が非同期になり、BackgroundWorker によって処理されるようになりました。
  • CodeEditor のサンプルアプリケーションに、Perforce のサービスメッセージのログを記録する OutputService を追加しました。
  • 文書のソース管理ステータスがチェックイン済みに変更された通知があると、コードエディターが文書を再読み込みするようになりました。 これにより、チェックアウトおよび変更されたファイルを元に戻してから、編集画面で内容を更新できるようになりました。
  • PerforceService - SettingsService が設定の読み込みと割り当てを行っている間に、割り当てを Enabled、DefaultConnection、ConnectionHistory のプロパティにキャッシュします。 SettingsService が読み込みを完了した後に、キャッシュされた値を正しい順序で適用します。
  • PerforceService: ファイルを元に戻す時に起こる可能性のある、クラッシュを修正しました。
  • ISettingsService に最近追加された Loading イベントを、従来の ISettingsService 用に拡張しました。
従来の PerforceService に Loading および Reloaded イベントを使用できるようになりました。
  • ソース管理サーバーから削除されたファイルの、ソースコントロールステータスが要求された場合、ステータスは従来の Deleted ではなく NotControlled に指定されます。 今リリースから Deleted は、ユーザーがローカルでファイルを削除した変更を、まだコミットしていない状態を意味します。
  • ファイルのソース管理ステータスアイコンが、ソース管理サービスが無効になっている場合にも正しく更新されるようになりました。
  • 従来の Connection.get が、m_connection の操作に特化したメソッドに変わりました。
  • m_connection.Disconnect() が呼び出された場合に、m_connectionInitialized が false に設定されることを保証する DestroyConnection を作成しました。
  • P4Command.Run() が例外を発生した場合に、ダミーのコマンドの結果を送信します。
  • UpdateFileInfoCache() - Perforce から記録が返されなかったアイテムを更新し、そのアイテムが以前に Perforce にあった場合には OnStatusChanged のみを送ります。
  • 新しいファイルが追加されると、Project Editor のソース管理ステータスを更新します。


ローカライゼーション:

  • LocalizableStringExtractor 開発ツールを修正、改良しました(アセンブリのリストを編集する方法および、進捗のロギング機能を追加)。
  • Localize() 拡張メソッドは文字列リテラルのみでしか使えないため、ローカル変数もしくはパラメーターで呼び出されている多数の箇所を修正しました。
  • プロジェクトは、プロジェクトごとにユニークな名前のファイルを使用する代わりに、一貫性を高めるために埋め込みの Localization.xml ファイルを使用するようになりました。
  • 各コンテキスト文字列がユニークである限り、同一の文字列に対する複数の翻訳がサポートされるようになりました。
  • ユーザーに見える部分の文字列を、より多く翻訳しました。
  • RecentDocumentCommands では、ユーザーから読めるドキュメントタイプの名前がユーザー設定に保持されていたため、コンピューターの言語設定が変更された場合にドキュメントの読み込みができなくなる問題がありました。 ドキュメントタイプ名は保持されなくなり、代わりに IDocumentClients を検索し (通常 1 つ、まれに 2 つもしくは 3 つの場合もあります) CanOpen() が動くかどうか確認します。
  • ATF の日本語への翻訳をサポートするために、大幅なローカライゼーションが進められました。
  • 言語を変更した後に、TimelineEditor で最近のファイルリストに問題が起こる、日本語のローカライゼーションの問題を修正しました。


回路/回路グループ:

  • CircuitValidator.AddNode の属性設定操作を自動的に組み合わせる、履歴コンテキストのデフォルトの振る舞いを無効にしました。これは、ピンインデックス変更のグループ化などの操作で、不正な振る舞いの原因となっていたためです。
  • GroupPinEditor.AdjustLayout() を internal から public に変更し、機能テストでも使用できるようになりました。
  • CircuitEditingContext により、Move() メソッドの列挙のバグが複数修正されました。
  • CircuitControlRegistry:
    • CircuitNodeControls ゲッターがすべての DomNode と回路コントロールの組み合わせを取得します。(ユースシナリオ:当てはまる場合には、アニメーションのツリービューの選択を変更すると、グラフビューの選択も調整されます。各ビューは、それぞれの選択コンテキストを持つことにご注意ください。)
    • 新しいメソッドの GetCircuitControlInfo() は DomNode を取り、その DomNode に関連付けられた回路コントロールの情報を返します。
    • private docNode_AttributeChanged() を protected virtual OnDocumentNodeAttributeChanged() に変更しました。
  • TestTemplates テストスクリプトにより発見された、選択アイテムをテンプレートライブラリにレベル上げする際のバグを修正しました。
  • 展開したグループ内で、複数のサブノードをドラッグして選択できるようになりました。
  • グループをリサイズする際に、ローカルの境界線を使用できるようになりました。
  • 今リリースから、グループが展開されている場合には、背景ではなくタイトルバーのクリックによってのみドラッグが可能です。
  • ノード選択のロジックで、非表示のノードはスキップされます。
  • 回路要素を展開した回路グループにドラッグし、その展開した回路グループをリサイズすることで起こる可能性のある、無限ループを修正しました。
  • ベジェ曲線に加え、ポリラインのワイヤー描画のサポートを追加しました。
  • D2dCircuitRenderer.MaxCollapsedGroupPinNameLength が追加され、折りたたんだ回路グループに表示するピン名の最大長を、クライアントコードが指定できるようになりました。 グループが折りたたまれている場合にピン名が指定より長いと、表示上のピン名は短くなり、省略記号とともに表示されます。 デフォルトは 25 文字で、最短は 5 文字です。
  • 回路グループの内部要素と外部要素の間を、ワイヤーで直接接続できるサポートを追加しました。
  • 異なるグループ間のアイテムの接続を作成できない問題を修正しました。
  • 新規に作成されたグループピンの表示を、接続されていないピンのための ShowExpandedGroupPins に設定しました。
  • CircuitEditingContext に SupportsNestedGroup プロパティを追加し、機能のオンオフの切り替えを簡単にしました。
  • CircuitEditor でのグループのリサイズを不可にしました。
  • グループ内のほかのノードに接続を持つノードを、グループ外にドラッグするとクラッシュする問題を修正しました。
  • グループの端のドラッグによるリサイズが、正常に機能するようになりました。
  • テンプレートインスタンスで \[接続されていないピンを隠す\] を、早いマウスクリックで切り替えた場合に起きるクラッシュを修正しました。
  • グループノード型の名前とグループノードの名前を区別するために、回路グループに ICircuitElementType.Name の明示的な実装を追加しました。 グループ型の名前をカスタマイズするために Creature Editor からバックポートされ、ほかの問題が起きる原因となっていた ProxyElementType クラスは削除されました。 明示的な実装により、問題が簡単な方法で解決されます。
  • D2dCircuitRenderer が MaxCollapsedGroupPinNameLength を 25 に初期化します。以前はこの値はデフォルトの 0 のままであったため、グループピンが短い名前の場合でもテキストが切られていました。
  • Element の AllInputPins プロパティおよび AllOutputPins プロパティは仮想プロパティになり、Group にオーバーライドされます。 クラッシュを修正するために、Group はオーバーライド時に非表示のピンも考慮するようになりました。
  • 回路のグループ化: EditableGraph をクエリする前に、draggingContext のヒットパスを更新します。これは EditableGraph が draggingContext に依存するためです。
  • 従来の CircuitEditor: Group と Ungroup の 2 つの回路グループコマンドは、完全実装されなかったため削除しました。
  • StandardLayoutCommands が右側もしくは下部で正常に並べられない問題の原因となった、回路要素の Bounds プロパティのバグを修正しました。


プロパティ編集:

  • GridView (スプレッドシート形式のプロパティエディターが使用): 多数の行が選択されており、かつ、いくつかの行が画面に表示されていない状態で、ユーザーが任意の 1 行を選択解除した場合に起きる、自動スクロールのバグを修正しました。 行が選択されていたとしても、どの選択された行にスクロールすると問題が再現するのか不明確だったので、この状態での自動スクロールを無効にしました。
  • PropertyView が BrowsableAttribute で指定される、IsBrowsable の記述子の値を監視するようになりました。
  • IntInputControl および FloatInputControl で使用されていた TrackBar は、コンパクトスピナーに変わりました。 コンパクトスピナーは占めるスペースも少なく、使い方も簡単です。 空いた分のスペースは InputBox に使われます。
  • PropertyEditor:
    • NumericMatrixControl および NumericTupleControlHandled 用に OnBackColorChanged を処理しました。
    • NumericTupleControl のラベルを描画しました。
  • 新しいサンプルの DomPropertyEditor を追加しました。
  • EmbeddedCollectionEditor の以下のバグを修正しました。
    • 子オブジェクトに対し、\[戻す/やり直し] および \[上へ/下へ] が正しく動作しませんでした。
    • あるアイテムを削除後に新しいアイテムを追加すると、新しいアイテムが表示されませんでした。
    • DomPropertyEditor のサンプルアプリケーションが Windows® 8 上で実行できないバグを修正しました。リエントラント性の問題が原因でした。
  • BoundedFloatEditor および BoundedIntEditor での、マウススピードの値の変化を調整しました。
その他の変更点:
  • サードパーティのコンポーネンツのライセンス情報を、ThirdParty ディレクトリに追加、移動しました。
  • ModelViewer サンプルアプリケーション: 同じセッション内でモデルファイルを、再度開けなくなる問題を修正しました。
  • ISettingsService および SettingsService: Loading イベントを追加しました。各種設定が読み込まれ設定される直前であることが、クライアントコードに分かるようになりました。 これは、互換性に影響する細かい変更点です。 クライアントが ISettingsService を実装している可能性は低いですが、実装している場合には設定ファイルを読み込む前に Loading イベントを発生させる必要があります。
  • TreeList:
    • TreeListViewAdapter: TreeListViewAdapter が仮想モードの場合に起こる、IObservableContext の Reloaded イベントハンドラのクラッシュを 2 件修正しました。
    • TreeListEditor サンプルアプリケーション: Virtual List エディターに Reload ボタンを追加しました。 recursive-check-boxes ボタンの enum を 1 ビットのフラグに修正しました。これにより、ほかの 2 つのボタンからのフラグを、誤って再利用することがなくなります。
    • Node で渡される DrawBackground() メソッドを追加しました。
    • TreeControl がツールチップをサポートするようになりました。 ツールチップは、CircuitEditor、FSMEditor、StatechartEditor、TimelineEditor のサンプルアプリケーションのアイテムパレットにあります。
  • DoTransaction() 拡張メソッドは、Begin の呼び出しの中でトランザクションが中止された場合、トランザクションと End 呼び出しをスキップします。
  • DomXmlWriter
    • ShouldWriteAttribute() メソッドを追加しました。これにより、属性値がデフォルト値に設定されているかどうかに関わらず、クライアントが属性値を書き込むかスキップするかを選択できます。
    • クライアントコードがオーバーライドできるように、WriteChildElementsRecursive() を virtual にしました。
  • ErrorDialogService が、ダイアログのタイトルにエラーのタイプ (エラー、警告、情報) を表示するようになりました。
  • 登録したコントロールもしくはコマンド毎に URL を関連付けるか、新しい WebHelp クラスを使用することにより、関連する内容のオンラインヘルプが利用可能になりました。 WebHelpCommands は、アプリケーションのヘルプのトップ URL を開くためのメニューコマンドを提供する、新しいクラスおよび MEF コンポーネントです。 ATF が現在提供する多くの GUI コンポーネントは、内容に特化したヘルプを提供しています。たとえば、GUI コンポーネントもしくはメニュー、ツールバーコマンドにフォーカスした状態でユーザーが F1 キーを押すと、適切なヘルプの URL が開きます。
  • Framework および CircuitEditor のサンプルアプリケーションから、Sce.Atf.Dom.TemplateReference を削除しました。 この変更により互換性が失われる部分もありますが、影響が出る可能性はほとんどありません。
  • ISelectionPathProvider を拡張し、テンプレート化されたインスタンスの、編集時のコピーをサポートするようになりました。
  • スキーマファイルから C# DOM 関連のコードを生成するために使われるバッチファイルから、p4 edit コマンドを削除しました。 ATF が Perforce をソースコードリポジトリに使用しなくなったためです。
  • DomTreeEditor サンプル: エディターを実演するために、さまざまな値のエディターの属性を追加しました。 XML スキーマの注釈を解析できるように、SchemaLoader に ParseAnnotations() メソッドを追加しました。
  • ControlHostService に数件の改良を加えました。
    • Panes をドッキングできる箇所を制限するために、DockAreas を表示しました。
    • SetPanelPortion メソッドから、Panel 部分の高さの設定を妨げていた制限を削除しました。
  • TimelineCommands.cs: アイテムを削除するためのコマンドが、編集メニューに表示されない問題がありました。null menuTag パラメーターを RegisterCommand() の StandardMenu.Edit に変更しました。 上記のコマンドは元に戻す操作ができないため、ICommandClient.DoCommand() にトランザクションを追加しました。 Program.cs: サンプルの起動時に、前回開いていたドキュメントが再度開くように、AutoDocumentService コンポーネントを追加しました。
  • Curve Editor
    • 接線の種類の設定を元に戻した場合、CurveEditor が更新するようになりました。
    • 統合された接線は、剛体として扱われるようになりました。
    • Curve に新しい静的プロパティの EnforceCurveLimits を追加しました。
  • CTE テストのカスタマイズされた振る舞いに対応するように、FunctionalTestBase に FixedRemoteTestingPort プロパティを追加しました。
  • テストスクリプトとアプリケーションからのコンソール出力を識別するタグのオン/オフを行う、TagConsoleOutput プロパティを FunctionalTestBase に追加しました。
  • パネル部分のドッキングを、相対サイズから絶対サイズの使用に変換するメソッドを追加しました。 以前の保存されたレイアウトは、DockPanelState の設定時に変換されます。
  • いくつかのコントロールの展開ボタンを、より現代的な外観に変更しました(ツリー、propertyEditor など)。
  • 以下を追加しました:
    • D2dGraphics:
  • public D2dBitmap CreateBitmap(int width, int height)
    • D2dBitmap:
  • public System.Drawing.Bitmap GdiBitmap
  • public void Update()
    • D2dFactory:
  • public static D2dBitmap CreateBitmap(int width, int height)
  • スクリプト用のコマンドコンソール ConsoleTextBox の改良を統合しました:
    • オートコンプリートによる提案
    • 複数行サポートの改良
    • プロンプトを通過した場合の ArgumentOutOfRangeException
    • 次の単語もしくは前の単語を選択した場合に、選択されるテキストが不正
    • 選択時にカーソルが動かなくなる
    • 提案の ListBox が不正な位置に表示される
    • 複数行の文中で、インデントが機能しない
    • CaretIndex を使用すべき箇所に、不正に SelectionStart が使用されていた部分を修正
    • プロンプトの外側にいる場合の、Home コマンドおよび End コマンドを修正
  • バグ修正: EnumUtil.GetEnumData が、2 つ以上の同じ値のエントリを含む enum の宣言をアサートしていました。 修正により、最初の同じ値のエントリ以外は無視されるようになりました。 この修正により、enum 型宣言のすべてのエントリを必要とするクライアントコードには、問題が生じる可能性があります。 その場合には、result.DisplayStrings を multimap にすることで、この変更を削除できます。 ただし、互換性に影響がでる可能性があります。
  • ユーティリティのスクリプト用変数を追加しました:
    • atfSourceControl は、null でない場合に SourceControlService オブジェクトになります。
    • atfLayout は、null でない場合に IWindowLayoutService オブジェクトになります。
  • Guerrilla からの変更を組み込みました。 RecentDocumentCommands はデバッガーが添付されている場合に、開くのに失敗した文書を一覧から削除しなくなりました。
  • IronPython が Ctrl+Shift によるナビゲーションをサポートしていない: (Ctrl|Ctrl+Shift)+End および (Ctrl|Ctrl+Shift)+Home により、行やコマンドの最初もしくは最後に移動する機能を追加しました。
  • IronPython の切り取りショートカットが、送信されたコマンドを削除する場合がある: Regex がテキストを単語のブロックに分割していたのに代わり、単語以外の文字をグループ化して、単語ブロックの最後に空白文字を含めるようになりました。
  • CurveEditor の切り取り/コピー/貼り付けを無効にしました。 これらの操作は、曲線に対して明確に定義されていませんでした。
  • システム情報ダイアログのソートが不正。 Version 行と DateTime 行の比較に Tag フィールドを使用します。
  • DomNode.Copy() が渡されたマップのパラメーターを持つようになりました。これにより、クローン後のカスタムクローンロジックのクライアントコードが簡単になります。
  • Wws.UI の license.txt ファイルを、更新、整理し、より明確にしました。
  • Property Editing のサンプルアプリケーションは、DOM Property Editor サンプルアプリケーションに置き換わったため削除されました。
ドキュメント:
  • ATF Programmer�'s Guide を大幅に変更しました。リンクを参照してください。 ATF Programmer's Guide 新しい内容が多く追加され、既存の内容も広範囲にわたって整理、修正、明確化されました。
  • Programmer Guide のウィキページのエクスポートが追加されました。 SHIP アカウントのないクライアントに便利です。
Clone this wiki locally