From VisualWorks®, 7.6 of February 8, 2008 on March 3, 2008 at 9:43:26 pm (Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned. Choose terminate or close.'] <class> <name>PartPort</name> <environment>UI</environment> <super>Graphics.VisualPart</super> <private>false</private> none subParts partCreationBlock selectionSlot <imports></imports> <category>TiggerInterfaceApp</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> UI.PartPort
I am a pluggable/switchable visual part which provides a switchable focus to an aribitrary number of other parts. I watch a model (which can be change/update based or Announcement based), and I show the part that is associated with that object. When no part has yet been established for a given selection value, the partCreationBlock is consulted to create one. Instance Variables: partCreationBlock <BlockClosure> Single arg block that is handed the value of the selectionSlot when no associated part is yet found in the subParts map selectionSlot <Announcer | ValueModel> the selected "domain" object. Note that this could actually be a visualPart itself, and the partCreationBlocks just returned yourself subParts <(Dictionary of: VisualPart)> map of the part that goes along with each unique selection object
</comment> <class> <name>RBActionDispatcher</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none objects <imports></imports> <category>Browser-Commands</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBActionDispatcher
RBActionDispatcher is used to dispatch menu selections. Since the browser is broken into several objects and the menu for one object might be inside another object, we need to be able to find the correct object to dispatch the menu to. Instance Variables: objects <Dictionary> the different objects in the browser
</comment> <class> <name>BrowserApplicationModel</name> <environment>Refactory.Browser</environment> <super>UI.ApplicationModel</super> <private>false</private> none menus <imports></imports> <category>Browser-RB UI</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.BrowserApplicationModel
BrowserApplicationModel is an abstract class that extends the standard ApplicationModel. It adds functions to easily change subcanvases and change the properties of the widgets. Subclasses with subcanvases should override the #subcanvases method so that the new subcanvas is also returned in the list of subcanvas open in this application. The subcanvas information is used so that #updateRequest's can be made of the whole application without the need to write a specific updateRequest in each subclass that defines uses a subcanvas. Also, when installing the same application model several different times, the builder must be nil'ed and the #subcanvases method is also used to nil the builder. Class Instance Variables: menus <Dictionary> a cache of all our menus Shared Variables: PromptOnRefactoring <Boolean> should we open a changes list when performing a refactoring
</comment> <class> <name>NavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.BrowserApplicationModel</super> <private>false</private> none navigator <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.NavigatorPart
NavigatorPart represents a generic subcanvas that can be placed inside a navigator. It is responsible for displaying some navigation information and when selections are made it must notify the navigator of those changes. The navigator will also request this part to fill in the appropriate parts of the navigator state. Subclasses must implement the following messages: accessing-navigator fillInState: fill in the NavigatorState with our current selection updating widgets selectState: a buffer is being switched to, select the correct class/method in the navigator state no matter where it is updateWithState: a previous part has changed its selection, try to keep the same selections, but if not possible, just update our display Instance Variables: navigator <BrowserNavigator> our containing navigator
</comment> <class> <name>MetaNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.NavigatorPart</super> <private>false</private> none metaHolder <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.MetaNavigatorPart
MetaNavigatorPart is the part that displays the switch buttons to select the instance side / class side switch. Instance Variables: metaHolder <ValueModel> Holder for the current selection.
</comment> <class> <name>RBMultiSelectionInList</name> <environment>Refactory.Browser</environment> <super>UI.MultiSelectionInList</super> <private>false</private> none <imports></imports> <category>Browser-Support</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBMultiSelectionInList
RBMultiSelectionInList is a MultiSelectionInList that uses an OrderedCollection for its selections instead of a Set.
</comment> <class> <name>RBInitializerDefinition</name> <environment>Refactory.Browser</environment> <super>Tools.InitializerDefinition</super> <private>false</private> none <imports></imports> <category>Browser-Support</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBInitializerDefinition
RBInitializerDefinition is an InitializerDefinition with a special displayString.
</comment> <class> <name>ListNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.NavigatorPart</super> <private>false</private> none menu visualBlock objectList defaultVisualBlock <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ListNavigatorPart
ListNavigatorPart is the abstact superclass of navigator parts that display a list of something. Instance Variables: menu <Menu> The menu that pops up on this list. objectList <MultiSelectionInTree> The list of items. visualBlock <BlockClosure> This block is called to display each item. Allows highlighting, etc. Class Instance Variables: defaultVisualBlock <BlockClosure> the visual block for the list
</comment> <class> <name>ProtocolNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ProtocolNavigatorPart
ProtocolNavigatorPart is a navigator part which is used to display protocol lists for shared variables or methods. Subclasses must implement the following messages: drag and drop canDropInProtocol: returns a boolean if we can drop on the protocol dropUsing: performs the drop action private fillInListFor: update the navigator state updating widgets updateSelectedProtocols:from: updates the list of selected items to include the protocols of the selected methods/shared variables
</comment> <class> <name>SelectorProtocolNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ProtocolNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.SelectorProtocolNavigatorPart
SelectorProtocolNavigatorPart is a navigator part that displays the protocols for methods.
</comment> <class> <name>SharedVariableProtocolNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ProtocolNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.SharedVariableProtocolNavigatorPart
SharedVariableProtocolNavigatorPart is a navigator part that displays the protocols for shared variables.
</comment> <class> <name>ParcelNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ParcelNavigatorPart
ParcelNavigatorPart is a navigator part that displays parcels.
</comment> <class> <name>HierarchyParcelNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ParcelNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.HierarchyParcelNavigatorPart
HierarchyParcelNavigatorPart displays a class hierarchy along with the parcels of the selected class.
</comment> <class> <name>InstanceVariableNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.InstanceVariableNavigatorPart
InstanceVariableNavigatorPart displays a list instance variables.
</comment> <class> <name>RBCommand</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none name description action enabled receiver <imports></imports> <category>Browser-Commands</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBCommand
RBCommand represents a command for the refactoring browser. It can determine who should receive the message and also whether the message is valid in the current context. This allows one to place any command in any toolbar or menu. Instance Variables: action <BlockClosure | Symbol> the symbol or block that is performed when we are executed description <String | UserMessage> our help text enabled <Symbol> a symbol that when performed returns true if the action is valid in the current context name <String | UserMessage> our name receiver <Symbol> the name of the object that will receive our enabled and action messages Shared Variables: Actions <Dictionary> all actions for the RB menus, keyed by either the action name, if a String, or the defaultString of the action name, if the name is a UserMessage
</comment> <class> <name>ProtocolItemNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none protocolHolder listSelector overriddenCache <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ProtocolItemNavigatorPart
ProtocolItemNavigatorPart is a navigator part that displays items that are contained within a protocol (e.g., methods and shared variables). Instance Variables: listSelector <Symbol> this symbol is performed on ourself to update the current list protocolHolder <ValueModel on: Symbol> the protocol that our primary selection is in Shared Variables: ShowAllItemsWhenNothingSelected <Boolean> should we show all methods when no protocols selected
</comment> <class> <name>SharedVariableNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ProtocolItemNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.SharedVariableNavigatorPart
SharedVariableNavigatorPart is a navigator part that displays shared variables.
</comment> <class> <name>TabPartDescription</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none name buildSelector enabledSelector matchSelector <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.TabPartDescription
TabPartDescription is the item that the TabNavigatorPart holds in its tab list. Instance Variables: buildSelector <Symbol> the symbol that is performed to build the subcanvas enabledSelector <Symbol> the symbol that is performed to see if we are valid for the current selection matchSelector <Symbol> the symbol that is performed to see if we are the preferred display tab for the current selection name <String> our name
</comment> <class> <name>HierarchyPundleNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none definingPackage <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.HierarchyPundleNavigatorPart
HierarchyPundleNavigatorPart displays a class hierarchy along with the packages associated with the selected class. Instance variables: definingPackage <PackageModel | nil> When not nil, contains the package of those currently listed that defines the current class. Set to nil when multiple classes are selected.
</comment> <class> <name>GraphicPart</name> <environment>Graphics</environment> <super>Graphics.VisualPart</super> <private>false</private> none graphic <imports></imports> <category>My Classes</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Graphics.GraphicPart
I'm here to allow any VisualComponent to exist with "VisualPart" behavior in a part tree. Instance Variables: graphic <VisualComponent> the graphic I display
</comment> <class> <name>RBActionEditor</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.BrowserApplicationModel</super> <private>false</private> none enabledHolder actionHolder actionList receiverHolder descriptionHolder nameHolder typeList spec <imports></imports> <category>Browser-Commands</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBActionEditor
RBActionEditor is a helper class for creating the commands for the Refactoring Browser. It is used for developing the RB, and probably isn't that useful for others. Instance Variables: actionHolder <ValueModel> the action symbol for the command actionList <SelectionInList> the list of commands descriptionHolder <ValueModel> the help text of the selected command enabledHolder <ValueModel> the enabled symbol for the command nameHolder <ValueModel> the name of the command receiverHolder <ValueModel> the receiver symbol for the selected command spec <RBCommand> the selected command typeList <SelectionInList> the type of commands we are creating
</comment> <class> <name>ClassNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ListNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ClassNavigatorPart
ClassNavigatorPart is the abstract superclass of navigator components that display classes. Shared Variables: ShowWarningsForUncommentedObjects <Boolean> When true, classes and name spaces that have no comments are marked with a warning icon in the browser view
</comment> <class> <name>ClassAndObjectNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ClassNavigatorPart</super> <private>false</private> none objectHolder <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ClassAndObjectNavigatorPart
ClassAndObjectNavigatorPart is a component that displays a list of classes and an associated code component (Parcel, Package, etc.). Instance Variables: objectHolder <ValueModel> The code component corresponding to the selected class.
</comment> <class> <name>TabNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.NavigatorPart</super> <private>false</private> none objectList subcanvasBuilder namedComponents tabDescriptions <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.TabNavigatorPart
TabNavigatorPart is a navigator part that displays tab lists. Instance Variables: namedComponents <OrderedCollection of: Association> our components (name -> navigator part) objectList <SelectionInList> the selection in list of our tabs subcanvasBuilder <UIBuilder> the builder used to make our subcanvas Class Instance Variables: tabDescriptions <Collection> the tabs that are to be displayed
</comment> <class> <name>NameSpaceItemTabNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.TabNavigatorPart</super> <private>false</private> none type showProtocols <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.NameSpaceItemTabNavigatorPart
NamespaceItemTabNavigatorPart is the navigator part that shows a tabbed view and allows the user to select which contents of a namespace or class they wish to browse. Instance Variables: showProtocols <Boolean> should we show the protocol list even if we are not viewing all methods? Normally, we just show a text field for the protocol when we are just viewing a few methods. type <ByteSymbol> Which tab has been selected.
</comment> <class> <name>Navigator</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.BrowserApplicationModel</super> <private>false</private> none environment state dispatcher parts partsDictionary menus showOnlyFiltered <imports></imports> <category>Browser-Navigator</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.Navigator
Navigator is an abstract superclass. A navigator allows the user to browse a portion of the system and select various classes, method, and other program items. This roughly corresponds to the top portion of the classic Smalltalk browser. This is a component-based framework and allows the various lists and tabs to be swapped in depending on the purpose it will be used for. Instance Variables: dispatcher <RBActionDispatcher> This is responsible to performing the various menu and keystroke actions. environment <BrowserEnvironment> The portion of the image being browsed. menus <Dictionary key: String value: Menu> Map of all of the menus in this navigator. The string is an identifier used for lookup. parts <(Collection of: CodeComponentTabNavigatorPart)> The components being displayed in this navigator. partsDictionary <Dictionary key: Symbol value: NavigatorPart> Map of possible components that can be displayed in a navigator. showOnlyFiltered <Boolean> should we display methods in packages we haven't selected state <NavigatorState> The current set of selections in the navigator. This is a memento and is used to implement the buffers feature. Shared Variables: DefaultNamespace <String> the name of the default namespace for class definitions LastProtocol <Symbol> the last protocol that was selected in the navigator ShowOnlyFiltered <Boolean> should the default browsers filter by the packages/parcels selected? This is option can be overridden by each browser.
</comment> <class> <name>RBCheckedCommand</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.RBCommand</super> <private>false</private> none <imports></imports> <category>Browser-Commands</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBCheckedCommand
RBCheckedCommand is a command that when converted to a menu option, puts a check in front of the menu. This is useful for slowing lists of menu items where one of them is selected.
</comment> <class> <name>RBMultiSelectionView</name> <environment>Refactory.Browser</environment> <super>UI.MultiSelectionSequenceView</super> <private>false</private> none <imports></imports> <category>Browser-Support</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBMultiSelectionView
RBMultiSelectionView is a special MultiSelectionView that uses an OrderedCollection for its selections instead of a Set.
</comment> <class> <name>CodeComponentTabNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.TabNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.CodeComponentTabNavigatorPart
CodeComponentTabNavigatorPart is the navigator part that displays a code component list and a list of classes within that component. It also allows switch between a list view and a hierarchy view.
</comment> <class> <name>ProtocolSortOrder</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none name sortBefore sortAfter <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ProtocolSortOrder
ProtocolSortOrder defines a custom sort ordering of protocol strings. Strings are first sorted into buckets and then sorted alphabetically within the buckets. The buckets are defined by the sortBefore and sortAfter collections. These collections contain strings that will be match:ed against the list items. If an item does not match: anything in either the sortBefore or sortAfter lists, then it is assumed to go in the middle of the list. Instance Variables: name <String> our name sortAfter <SequenceableCollection of: String> the buckets to sort at the end of the list (the last item is the last bucket) sortBefore <SequenceableCollection of: String> the buckets to sort at the beginning of the list (the first item is the first bucket)
</comment> <class> <name>BundleSpecEditor</name> <environment>Store</environment> <super>UI.ApplicationModel</super> <private>false</private> none availablePundles bundle bundleContents bundleName disturbed pundleAvailability parentBundleHolder <imports></imports> <category>Store-UI</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Store.BundleSpecEditor
</comment> <class> <name>EnvironmentEditor</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.Navigator</super> <private>false</private> none selectedEnvironment <imports></imports> <category>Browser-Environment Editor</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.EnvironmentEditor
EnvironmentEditor is the browser for viewing an RBEnvironment. Instance Variables: selectedEnvironment <BrowserEnvironment> The environment to be browsed.
</comment> <class> <name>MethodNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ProtocolItemNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.MethodNavigatorPart
MethodNavigatorPart is the part that lists selectors.
</comment> <class> <name>RBMethodDefinition</name> <environment>Refactory.Browser</environment> <super>Tools.MethodDefinition</super> <private>false</private> none <imports></imports> <category>Browser-Support</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBMethodDefinition
RBMethodDefinition is an MethodDefinition with a special displayString.
</comment> <class> <name>ObjectNameWrapper</name> <environment>Refactory.Browser</environment> <super>Core.Magnitude</super> <private>false</private> none fullName simpleName environmentName <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ObjectNameWrapper
ObjectNameWrapper is used as the items in the class/namespace list. It allows you to type-select in the list. Instance Variables: environmentName <String> the full name of the namespace the class/namespace is in fullName <String> our full name simpleName <String> the class/namespace's short name Shared Variables: PrintFormat <String | nil> the format string that describes how to format class names
</comment> <class> <name>HierarchyClassNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ClassNavigatorPart</super> <private>false</private> none hierarchyClass <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.HierarchyClassNavigatorPart
HierarchyClassNavigatorPart is the component that displays a class hierarchy. Instance Variables: hierarchyClass <String> The class that the hierarchy is computed from.
</comment> <class> <name>Panel</name> <environment>UI</environment> <super>Graphics.CompositePart</super> <private>false</private> none layoutAlgorithm <imports></imports> <category>My Classes</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> UI.Panel
Panel is a new kind of CompositePart. A panel takes a more direct interest in where it's subParts go. It deviates from the classical Wrapper framework, in that it specifically avoids using Bounded/TranslatingWrappers around it's subParts (components), rather manipulating them directly. One thing I do do, is force any VisualComponent to be wrapped with "GraphicPart" object. So while getting rid of wrappers and such, I do enforce that all subParts are indeed parts. There are two levels at which the Panel's layout can be tuned. For complex layouts, where interPart relationships are computed, one sets the layoutAlgorithm directly. This is a block, but need not have all of the code in the block. The block may simply forward to a method in you own code (or added as an extension to this class) which does the work. Or one may even create a full blooded "LayoutAlgorithm" object and invoke it from the block. The block takes 2 arguments: rectangle: this is the box that the algorithm is supposed to create sub boxes relative to subParts: the collection of subParts that are currently being computed The block should return a collection of rectangles which are the new boxes to place the subParts in. For layouts where the inter part relationships are not as complex (spreading the parts evenly for example), one may choose to setup the layout using the partFramingBlock: API. This block culls 3 arguments: rectangle: the box to derive the new box relative to subPart: the part to derive the frame for index: the index of the subPart in the panel This block should return a rectangle for the subPart in question. See the instance side methods #beHorizontalSpread and #beVerticalSpread for examples. It bears noting that because any object can be associated with a VisualPart through its properties, one can derive all kinds of layouts, where hints and other per part information are attached to the part, but not enforced by a specific implementation. I make use of a #frame property on any VisualPart I contain to manage the data. Instance Variables: layoutAlgorithm <BlockClosure> the layout algorithm in block form, see above
</comment> <class> <name>RBDynamicMultiCommand</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.RBCommand</super> <private>false</private> none <imports></imports> <category>Browser-Commands</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.RBDynamicMultiCommand
RBDynamicMultiCommand is a special comment that evaluates to several different commands at runtime. It is useful for making dynamic lists of items.
</comment> <class> <name>SelectorNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.ProtocolItemNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.SelectorNavigatorPart
SelectorNavigatorPart is a navigator part that displays methods.
</comment> <class> <name>BrowserDialog</name> <environment>Refactory.Browser</environment> <super>UI.SimpleDialog</super> <private>false</private> none <imports></imports> <category>Browser-RB UI</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.BrowserDialog
BrowserDialog is an abstract class that extends the standard SimpleDialog. It adds functions to easily change the properties of the widgets.
</comment> <class> <name>ClassAndMethodTabNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.TabNavigatorPart</super> <private>false</private> none selectors methods <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ClassAndMethodTabNavigatorPart
ClassAndMethodTabNavigatorPart is a composite component that displays a list of classes and methods either as a list of methods or a list of classes and a list of selectors within that that class. Instance Variables: methods <MethodNavigatorPart> The subpart that displays the method list selectors <NamespaceItemTabNavigatorPart> The subpart that displays the selectors within a selected class.
</comment> <class> <name>ConstantNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.NavigatorPart</super> <private>false</private> none stateBlock <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.ConstantNavigatorPart
ConstantNavigatorPart is a special navigator part that just fills in the NavigatorState object. Instead of having a GUI that allows changes, it's state is tied to a block closure's value. Instance Variables: stateBlock <BlockClosure> the block that is used to fillin the navigator state
</comment> <class> <name>NavigatorState</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none parcels pundles objectNameReferences type protocols definitions properties nameSpaceName <imports></imports> <category>Browser-Navigator</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.NavigatorState
NavigatorState is a memento that the navigator uses to hold its state. It is held by each CodeModel so that when switching between the different code models, the navigator can easily be updated to the proper selection. Instance Variables: categories <Collection of: Symbol> the selected categories definitions <Collection of: GeneralMethodDefinition> the selected methods and/or shared variables namespaceName <String> our default namespace objectNameReferences <Collection of: GeneralBindingReference> the class and namespace references that are selected parcels <Collection of: String> selected parcel names properties <Dictionary> generic items that can be added to the state protocols <Collection of: Symbol> the selected protocols pundles <Collection> the package and bundle names that are selected type <ByteSymbol> are we viewing #data, #class, or #instance side of a class
</comment> <class> <name>PundleItem</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none item <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.PundleItem
PundleItem is used as the item in the bundle/package tree. It knows how to retrieve its children as well as perform the type-selection. Instance Variables: item <Store.BundleModel | Store.PundleAccess> our current item (the store registry is used for the top level node) Shared Variables: ModifiedBundleImage <CachedImage> the icon for a modified bundle ModifiedPackageImage <CachedImage> the icon for a modified package UnmodifiedBundleImage <CachedImage> the icon for an unmodified bundle UnmodifiedPackageImage <CachedImage> the icon for an unmodified package ShowWarningsForUncommentedPundles <Boolean> When true, pundles without comments are marked with a warning icon in the bundle/package tree.
</comment> <class> <name>PundleNavigatorPart</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.HierarchyPundleNavigatorPart</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-BaseUI</package> </attributes> </class> <comment> Refactory.Browser.PundleNavigatorPart
PundleNavigatorPart is a navigator part that displays packages.
</comment> <name>CheckedPackageImage</name> <environment>Store.BundleSpecEditor</environment> <private>false</private> <constant>false</constant> <category>images</category> <attributes> <package>Browser-BaseUI</package> </attributes> <name>CheckedBundleImage</name> <environment>Store.BundleSpecEditor</environment> <private>false</private> <constant>false</constant> <category>images</category> <attributes> <package>Browser-BaseUI</package> </attributes> <name>Actions</name> <environment>Refactory.Browser.RBCommand</environment> <private>false</private> <constant>false</constant> <category>As yet unclassified</category> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ShowAllItemsWhenNothingSelected</name> <environment>Refactory.Browser.ProtocolItemNavigatorPart</environment> <private>false</private> <constant>false</constant> <category>variables</category> <initializer>true</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ShowHorizontalScrollbar</name> <environment>Refactory.Browser.ListNavigatorPart</environment> <private>false</private> <constant>false</constant> <category>variables</category> <initializer>false</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ProtocolOrderChoices</name> <environment>Refactory.Browser.SelectorProtocolNavigatorPart</environment> <private>false</private> <constant>false</constant> <category>variables</category> <initializer>OrderedCollection with: ProtocolSortOrder alphabetical with: ProtocolSortOrder traditional</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ProtocolOrder</name> <environment>Refactory.Browser.SelectorProtocolNavigatorPart</environment> <private>false</private> <constant>false</constant> <category>variables</category> <initializer>ProtocolSortOrder alphabetical</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ShowWarningsForUncommentedObjects</name> <environment>Refactory.Browser.ClassNavigatorPart</environment> <private>false</private> <constant>false</constant> <category>settings</category> <initializer>true</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>UnmodifiedPackageImage</name> <environment>Refactory.Browser.PundleItem</environment> <private>false</private> <constant>false</constant> <category>resources</category> <initializer>nil</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ModifiedBundleImage</name> <environment>Refactory.Browser.PundleItem</environment> <private>false</private> <constant>false</constant> <category>resources</category> <initializer>nil</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>UnmodifiedBundleImage</name> <environment>Refactory.Browser.PundleItem</environment> <private>false</private> <constant>false</constant> <category>resources</category> <initializer>nil</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ShowWarningsForUncommentedPundles</name> <environment>Refactory.Browser.PundleItem</environment> <private>false</private> <constant>false</constant> <category>settings</category> <initializer>true</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ModifiedPackageImage</name> <environment>Refactory.Browser.PundleItem</environment> <private>false</private> <constant>false</constant> <category>resources</category> <initializer>nil</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>PrintFormat</name> <environment>Refactory.Browser.ObjectNameWrapper</environment> <private>false</private> <constant>false</constant> <category>printing</category> <initializer>nil</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <name>DefaultNameSpace</name> <environment>Refactory.Browser.Navigator</environment> <private>false</private> <constant>false</constant> <category>shared state</category> <attributes> <package>Browser-BaseUI</package> </attributes> <name>LastProtocol</name> <environment>Refactory.Browser.Navigator</environment> <private>false</private> <constant>false</constant> <category>shared state</category> <attributes> <package>Browser-BaseUI</package> </attributes> <name>ShowOnlyFiltered</name> <environment>Refactory.Browser.Navigator</environment> <private>false</private> <constant>false</constant> <category>shared state</category> <initializer>true</initializer> <attributes> <package>Browser-BaseUI</package> </attributes> <methods> UI.PartPort <category>private</category>
flushParts subParts do: [:each | each release]. subParts := IdentityDictionary new. self invalidate
flushPartsNotIn: aCollection | victims | victims := subParts keys reject: [:each | aCollection includes: each]. victims do: [:each | (subParts at: each) release. subParts removeKey: each]
newPartFor: aSource | view | view := [partCreationBlock value: aSource] on: Error do: [:ex | "ex pass." (PassiveLabel new) labelString: 'Error in part creation: ' , ex errorString; yourself]. view container: self. ^view
observeSelectionSlot: anObservedValue | ValueChanged | selectionSlot unsubscribe: self. selectionSlot := anObservedValue. selectionSlot when: ValueChanged send: #selectionChanged to: self
partFor: aSource ^subParts at: aSource ifAbsentPut: [self newPartFor: aSource]
selectedPartDo: aBlock ^self selectedSource ifNotNil: [:src | aBlock value: (self partFor: src)]
selectionChanged self updateSelectedPart. self isOpen ifTrue: [self invalidate]
selectionValueModel: anObject selectionSlot removeDependent: self. selectionSlot := anObject. selectionSlot addDependent: self
updateSelectedPart subParts do: [:eachView | eachView container: nil]. self selectedPartDo: [:v | v container: self; bounds: self bounds]
</methods> <methods> UI.PartPort <category>accessing</category>
selectedSource ^selectionSlot value
selection: anObject selectionSlot value: anObject
selectionSlot: anObject "Ugly branch to either hook up to an announcing slot, or a classical value model." self releaseSelectionSlot. (anObject isKindOf: #{Announcer} bindingOrNil value) ifTrue: [self observeSelectionSlot: anObject] ifFalse: [self selectionValueModel: anObject]
</methods> <methods> UI.PartPort <category>bounds accessing</category>
bounds: aRectangle subParts do: [:each | each bounds: aRectangle]
preferredBounds ^(self selectedPartDo: [:view | view preferredBounds]) ifNil: [Screen default bounds]
</methods> <methods> UI.PartPort <category>broadcast</category>
downcastEvent: aKey with: aParameter from: anInitiator ^(self selectedPartDo: [:view | view downcastEvent: aKey with: aParameter from: anInitiator]) ifNil: [false]
downcastLocalEvent: aKey with: aParameter at: aPoint from: anInitiator ^(self selectedPartDo: [:view | view downcastLocalEvent: aKey with: aParameter at: aPoint from: anInitiator]) ifNil: [false]
</methods> <methods> UI.PartPort <category>initialize-release</category>
flushCoordinateCaches subParts do: [:each | each flushCoordinateCaches]
initialize super initialize. subParts := IdentityDictionary new. partCreationBlock := [:selection | View new]. " self setModel: nil asValue"
partCreationBlock: anObject partCreationBlock := anObject
release subParts do: [:each | each release]. self releaseSelectionSlot. super release
releaseSelectionSlot selectionSlot removeDependent: self. (selectionSlot respondsTo: #unsubscribe:) ifTrue: [selectionSlot unsubscribe: self]
</methods> <methods> UI.PartPort <category>event driven</category>
handlerForMouseEvent: aMouseEvent ^self selectedPartDo: [:view | view handlerForMouseEvent: aMouseEvent]
</methods> <methods> UI.PartPort <category>input management</category>
updateSpot: type self selectedPartDo: [:v | v updateSpot: type]
</methods> <methods> UI.PartPort <category>displaying</category>
displayOn: aGC self selectedPartDo: [:part | part displayOn: aGC]
</methods> <methods> UI.PartPort <category>updating</category>
update: anAspect with: aParameter from: anObject self selectionChanged
</methods> <methods> Refactory.Browser.RBActionDispatcher <category>accessing</category>
environment ^self navigator environment
navigator ^self objects at: #navigator
navigator: aNavigator self objects at: #navigator put: aNavigator
</methods> <methods> Refactory.Browser.RBActionDispatcher <category>private</category>
objects ^objects isNil ifTrue: [objects := IdentityDictionary new] ifFalse: [objects]
</methods> <methods> Refactory.Browser.RBActionDispatcher <category>copying</category>
postCopy super postCopy. objects := objects copy
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>menu accessing</category>
action: aMenuItem ^self performAction: aMenuItem nameKey asString
actionNamed: aString ^RBCommand actionNamed: aString
buildMenuFrom: aMenu "When 7.5+ comes out (or when we integrate), we can get rid of the MNU trap." | newMenu groups | newMenu := Menu new. groups := [aMenu allMenuItemGroups] on: MessageNotUnderstood do: [:ex | aMenu visibleMenuItemGroups]. groups do: [:group | | items index newIndex | items := OrderedCollection new. group do: [:each | ((#(#action: #rbItem) includes: each value) or: [each value isSymbol and: [each value keywords size > 1]]) ifTrue: [items add: (self createActionMenuItemFrom: each)] ifFalse: [each value = #dynamicMenu ifTrue: [items addAll: (self dynamicMenuItemsFrom: each)] ifFalse: [| newItem symbol | newItem := each copy. newItem truePerformerBlock: [:ignore | self]. ((symbol := newItem value) isSymbol and: [self respondsTo: newItem value]) ifTrue: [newItem value: [self perform: symbol]]. "Force all messages that we understand to be dispatched to us, no matter if they are used in the menu bar or elsewhere." items add: newItem]]]. items do: [:each | each notNil ifTrue: [self createSubMenuItemFor: each]]. index := 0. [index < items size] whileTrue: [newIndex := items nextIndexOf: nil from: index + 1 to: items size. newIndex isNil ifTrue: [newIndex := items size + 1]. newMenu addItemGroup: (items copyFrom: index + 1 to: newIndex - 1). index := newIndex]]. ^newMenu
buildTopLevelMenuFrom: aMenuName | menu | [menu := (self class menuNamed: aMenuName) copy augmentFrom: self class to: BrowserApplicationModel menuName: aMenuName for: self] on: MenuAugmentationError do: [:ex | ex isResumable ifTrue: [ex resume]]. ^(self doesMenuNeedToBeRebuilt: menu) ifTrue: [[self buildMenuFrom: menu]] ifFalse: [self buildMenuFrom: menu]
createActionMenuItemFrom: aMenuItem | newItem commandName | newItem := aMenuItem copy. newItem rawLabel: (self menuLabelFor: aMenuItem). newItem nameKey: aMenuItem nameKey. commandName := aMenuItem nameKey. (commandName notNil and: [aMenuItem value ~= #rbItem]) ifTrue: [newItem value: [self action: newItem]. newItem helpText: (self actionNamed: aMenuItem nameKey asString) description] ifFalse: [newItem value: nil]. newItem enablementSelector: #isMenuItemEnabled:. aMenuItem enablementSelector notNil ifTrue: [newItem hidden: [self isMenuItemHidden: aMenuItem]]. ^newItem
createSubMenuItemFor: aMenuItem | submenu | submenu := aMenuItem submenuHolder. submenu isNil ifTrue: [^self]. (submenu isKindOf: Menu) ifFalse: [^self]. aMenuItem submenu: ((self doesMenuNeedToBeRebuilt: submenu) ifTrue: [[self buildMenuFrom: submenu]] ifFalse: [self buildMenuFrom: submenu])
disableMenu: aMenu except: aCollection aMenu menuItems do: [:each | (aCollection includes: each label) ifTrue: [each enable] ifFalse: [each disable]. each submenu notNil ifTrue: [self disableMenu: each submenu except: aCollection]]. ^aMenu
doesMenuNeedToBeRebuilt: aMenu "The dynamic label menus (e.g., action:labelSelector:) and the dynamic list menus (e.g., the buffer lists) need to be reconstructed when the menu opens." ^aMenu menuItems anySatisfy: [:each | each value = #dynamicMenu or: [each value isSymbol and: [each value keywords size > 1]]]
dynamicMenuItemsFrom: aMenuItem | actions action | action := self actionNamed: aMenuItem nameKey asString. actions := action actionSpecificationsFor: self dispatcher. ^actions collect: [:each | | item | each isNil ifTrue: [nil] ifFalse: [item := MenuItem labeled: each name. item enabled: [each isEnabledFor: self dispatcher]. item value: [each performWith: self dispatcher]. each isCheckedActionSpecification ifTrue: [item beOn]. item]]
isMenuItemEnabled: aMenuItem | submenu action | (aMenuItem nameKey isNil or: [aMenuItem value isNil]) ifTrue: [submenu := aMenuItem submenu. ^submenu isNil or: [submenu menuItems anySatisfy: [:each | each isEnabled and: [each enablementSelector isNil or: [each enablementSelector numArgs = 0 ifTrue: [self perform: each enablementSelector] ifFalse: [self perform: each enablementSelector with: each]]]]]]. action := self actionNamed: aMenuItem nameKey asString. ^action isEnabledFor: self dispatcher
isMenuItemHidden: aMenuItem ^([self perform: aMenuItem enablementSelector] on: Error do: [:ex | [((self actionNamed: aMenuItem nameKey asString) receiverFor: self dispatcher) perform: aMenuItem enablementSelector] on: Error do: [:ex1 | [self dispatcher perform: aMenuItem enablementSelector] on: Error do: [:e | e return: false]]]) not
maxMenuNameLength ^50
menu "Return a default menu for all subclasses. This is used when embedding this object inside another app model." ^ [| mb | mb := MenuBuilder new. mb add: 'No menu' -> #yourself. mb menu]
menuLabelFor: aMenuItem | labelSelector keywords | ^(keywords := aMenuItem value keywords) size > 1 ifTrue: [labelSelector := (keywords last copyFrom: 1 to: keywords last size - 1) asSymbol. [((self actionNamed: aMenuItem nameKey asString) receiverFor: self dispatcher) perform: labelSelector] on: Error do: [:ex | [self dispatcher perform: labelSelector] on: Error do: [:ex1 | [self perform: labelSelector] on: Error do: [:e | e return: 'Error']]]] ifFalse: [aMenuItem rawLabel]
menuNameFor: aSelector ^aSelector size > self maxMenuNameLength ifTrue: [(aSelector copyFrom: 1 to: (self maxMenuNameLength * 0.75) rounded) , '...' , (aSelector copyFrom: aSelector size - (self maxMenuNameLength * 0.25) rounded + 3 to: aSelector size)] ifFalse: [aSelector]
performAction: aString | action | action := self actionNamed: aString. ^action performWith: self dispatcher
rebuildMenus "Build the specific menus for each part of the browser." self subcanvases do: [:each | each rebuildMenus]
setMenu: newMenu for: widget | controller | controller := self controllerFor: widget. controller isNil ifTrue: [^self]. controller menuHolder: newMenu
windowMenuItems ^#()
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>requests</category>
choose: aString from: aCollection ^self choose: aString fromList: aCollection values: aCollection lines: 20 cancel: [nil]
choose: aString fromList: aCollection values: valueCollection ignore: ignoreChoices initialSelection: anIndex lines: anInteger cancel: cancelBlock | labels sd spec listW buttons | labels := SelectionInList new. labels list: aCollection asList. anIndex notNil ifTrue: [labels selectionIndex: anIndex]. sd := SimpleDialog new. spec := sd class interfaceSpecFor: #emptySpec. sd builder add: spec window. sd builder add: spec component. sd setInitialGap. sd addMessage: aString centered: true. sd addGap: 8. listW := sd addList: labels lines: anInteger validation: [labels selectionIndex > 0]. listW widget setValidTargetIndex: labels selectionIndex. sd addGap: 4. buttons := sd addOK: [labels selectionIndex ~= 0]. sd addGap: 6. sd bottomAlignLowerEdge: listW. sd bottomAlign: (Array with: buttons). labels selectionIndexHolder compute: [:v | (v > 0 and: [ignoreChoices includes: v]) ifTrue: [labels selectionIndex: 0. listW widget targetIndex: 0]]. sd preOpen. sd builder openDialogWithExtent: sd builder window displayBox extent. ^sd accept value ifTrue: [valueCollection at: labels selectionIndex] ifFalse: [cancelBlock value]
choose: aString fromList: aCollection values: valueCollection lines: anInteger cancel: aBlock ^Dialog choose: aString fromList: aCollection values: valueCollection lines: anInteger cancel: aBlock for: self interfaceWindow
confirm: aString ^Dialog confirm: aString
request: aString ^Dialog request: aString
request: aString initialAnswer: anAnswerString ^Dialog request: aString initialAnswer: anAnswerString
showWaitCursorWhile: aBlock "The intent here is to wait a certain amount of time and if aBlock is _still_ proceeding, only then show the wait cursor." "The original version used a terminate on the cursorInterrupt process, we now just use a simple latched flag which should lead to less race condition opportunities. The wait time is increased from 0.1s to 0.2s to be a little more consistent with where the current spate of guidelines seem to converge. As a good measure, if anyone decides to start pounding away creating lots of processes, we do an early out check by dividing the total wait time into 3 increments of increasing size." | originalCursor done | (originalCursor := Cursor currentCursor) == Cursor wait ifTrue: [^aBlock value]. "wait a total of 0.2 s, with intermediate checks" done := false. [(#(0.01 0.05 0.14) anySatisfy: [:each | (Delay forSeconds: each) wait. done]) ifFalse: [Cursor wait show]] forkAt: ((Processor activeProcess priority + 1) min: Processor timingPriority). ^aBlock ensure: [done := true. originalCursor show]
warn: aString ^Dialog warn: aString
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>widget properties</category>
controllerFor: aSymbol | wrapper | builder isNil ifTrue: [^nil]. wrapper := builder componentAt: aSymbol. wrapper isNil ifTrue: [^nil]. ^wrapper widget controller
disable: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component disable]
disableAll: aCollection aCollection do: [:each | self disable: each]
enable: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component enable]
enableAll: aCollection aCollection do: [:each | self enable: each]
hide: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component beInvisible]
hideAll: aCollection aCollection do: [:each | self hide: each]
invalidateComponent: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component invalidate]
setMenuOf: aSymbol to: aMenu | controller | controller := self controllerFor: aSymbol. controller isNil ifTrue: [^self]. [controller menuHolder: aMenu] on: Error do: [:ex | ex return]
show: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component beVisible]
showAll: aCollection aCollection do: [:each | self show: each]
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>interface opening</category>
createSelectedVisualBlockFrom: aBlock ^ [:v :index | | rw | rw := ReversingWrapper on: (aBlock value: v value: index). rw reverse setValue: true. BoundedWrapper on: rw]
createVisualBlockFrom: block ^[:view :index | BoundingWrapper on: (block value: view value: index)]
resetBuilder "Set the builder to nil. This is needed to make subcanvas switching work. Subclasses do not need to provide this." self builder: nil. self subcanvases do: [:each | each resetBuilder]
tabListWidgetFor: aSymbol | specWidget widget | builder isNil ifTrue: [^nil]. specWidget := builder componentAt: aSymbol. specWidget isNil ifTrue: [^nil]. widget := specWidget widget. widget := [widget tabBar] on: Error do: [:ex | ex return: nil]. widget isNil ifTrue: [^nil]. ^widget component
tabVisualBlockFor: aSymbol is: aBlock | widget | widget := self tabListWidgetFor: aSymbol. widget isNil ifTrue: [^self]. widget visualBlock: (self createVisualBlockFrom: aBlock)
visualBlockFor: aSymbol is: aBlock | specWidget | builder isNil ifTrue: [^self]. specWidget := builder componentAt: aSymbol. specWidget isNil ifTrue: [^self]. (specWidget widget) visualBlock: (self createVisualBlockFrom: aBlock); selectedVisualBlock: (self createSelectedVisualBlockFrom: aBlock)
windowSpecMethod ^#windowSpec
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>store</category>
abstractToolClass ^#{Store.AbstractTool} value
bundleDifferenceBrowserClass ^#{Store.BundleDifferenceBrowser} value
bundleSpecEditorClass ^#{Store.BundleSpecEditor} value
classDescriptorClass ^#{Store.ClassDescriptor} value
comparisonBrowserClass ^#{Store.ComparisonBrowser} value
dbRegistry ^#{Store.DbRegistry} value
isStoreLoaded ^self class isStoreLoaded
nameSpaceDescriptorClass ^#{Store.NameSpaceDescriptor} value
publishAsParcelDialogClass ^#{Store.PublishAsParcelDialog} value
pundleChangeListClass ^#{Store.PundleChangeList} value
setPackage: package while: aBlock | policiesRef | (package isNil or: [package isBundle]) ifTrue: [^aBlock value]. policiesRef := #{Store.Policies}. policiesRef isDefined ifFalse: [^aBlock value]. policiesRef value packagePolicy forcePackage: package while: aBlock
sharedVariableDescriptorClass ^#{Store.DatumDescriptor} value
storeChangeSet ^#{Store.XChangeSet} value current
storeClassClass ^#{Store.ClassRecord} value
storeMethodClass ^#{Store.Method} value
storeNameSpaceClass ^#{Store.NameSpaceRecord} value
storeRegistry ^#{Store.Registry} valueOrDo: [nil]
storeSharedVariableClass ^#{Store.DataElement} value
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>accessing</category>
currentWindow "Answer the builder's window if we can get to one and determine that it's open." ^builder ifNotNil: [builder window ifNotNil: [:window | window isOpen ifTrue: [window] ifFalse: [nil]]]
dispatcher ^self
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>subcanvases</category>
installSubcanvasIn: aSymbol using: anApplicationModel self installSubcanvasIn: aSymbol using: anApplicationModel spec: anApplicationModel windowSpecMethod
installSubcanvasIn: aSymbol using: anApplicationModel spec: aSpec | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. (anApplicationModel respondsTo: #resetBuilder) ifTrue: [anApplicationModel resetBuilder]. component notNil ifTrue: [component widget client: anApplicationModel spec: aSpec builder: builder newSubBuilder]. (anApplicationModel isKindOf: BrowserApplicationModel) ifTrue: [anApplicationModel updateDisplay]
saveState "Supports the ability to lock code and not have it update. This is done when switching buffers or sending #lock." "Subclasses do not need to provide this method." self subcanvases do: [:each | each saveState]
subcanvases "Return all of the BrowserApplicationModels in the current browser." "For details, see the class comment of BrowserApplicationModel." ^#()
updateDisplay "Update all parts of the model (subcanvases). This is sent by #postOpenWith: and when a tool is switched to the foreground." self subcanvases do: [:each | each updateDisplay]
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>window properties</category>
interfaceWindow builder notNil ifTrue: [^builder window]. ^nil
setLabel: aLabel (builder notNil and: [builder window notNil]) ifTrue: [builder window label: aLabel]
takeFocus "Someone has requested for us to take the widget input focus, but we don't know how."
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>testing</category>
isEditing "Return true if the user has changed the code in the tool but not yet accepted it." ^false
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>updating</category>
updateRequest "Answer true if the receiver may be changed." ^super updateRequest and: [self subcanvases allSatisfy: [:each | each updateRequest]]
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>drag and drop</category>
dropSelection: aDragContext | controller index | controller := aDragContext clientData at: #controller. index := controller view targetIndex. index == 0 ifTrue: [^nil]. ^controller view sequence at: index
initialDropStateFor: aSymbol | dict controller component | component := self builder componentAt: aSymbol. component isNil ifTrue: [^nil]. controller := component widget controller. dict := IdentityDictionary new. dict at: #controller put: controller. dict at: #targetIndex put: controller view targetIndex. dict at: #hasFocus put: controller view hasFocus. controller view hasFocus: true. ^dict
restoreListStateFrom: aDictionary | controller | aDictionary isNil ifTrue: [^self]. controller := aDictionary at: #controller ifAbsent: [^self]. controller view targetIndex: (aDictionary at: #targetIndex). controller view hasFocus: (aDictionary at: #hasFocus)
showDropFeedbackForList: aSymbol in: aDragContext | component | component := self builder componentAt: aSymbol. component notNil ifTrue: [component widget showDropFeedbackIn: aDragContext allowScrolling: true]
</methods> <methods> Refactory.Browser.BrowserApplicationModel <category>help</category>
help self help: self helpTopic
help: topicString | openBlock classReference | classReference := #{VWHelp.HelpBrowser}. openBlock := [:each | each openOnBook: 'VisualWorks Tools' topic: topicString]. classReference ifDefinedDo: openBlock elseDo: [(self confirm: (#confirmLoadHelp << #dialogs >> 'The help parcel has not been loaded.<n>Do you wish to load it?') expandMacros) ifTrue: [Notice show: (#LoadingParcelN1S << #dialogs >> 'Loading Parcel<n><1s>' expandMacrosWith: 'VWHelp') while: [Parcel ensureLoadedParcel: 'VWHelp' withVersion: '']. classReference ifDefinedDo: openBlock]]
helpTopic ^'System Browser'
iconsHelp self help: 'Browser Icons'
</methods> <methods> Refactory.Browser.BrowserApplicationModel class <category>menus</category>
addMenu: aMenu named: aString self menus at: aString put: aMenu
flushMenus self == BrowserApplicationModel ifTrue: [self allSubclasses do: [:each | each flushMenus]]. menus := nil
initializeMenus self withAllSubclasses do: [:each | each loadMenus]
loadMenus menus := Dictionary new. self class selectors do: [:each | | method | method := self class compiledMethodAt: each. method resourceType = #menu ifTrue: [self addMenu: (self perform: each) named: (self menuNameForSelector: each)]]. self changed: #menus
menuNamed: aString | menu menuName | menuName := aString isSymbol ifTrue: [self menuNameForSelector: aString] ifFalse: [(aString respondsTo: #defaultString) ifTrue: [aString defaultString] ifFalse: [aString]]. menu := self menus at: menuName ifAbsent: [^superclass menuNamed: menuName]. ^menu
menuNameForSelector: aSymbol | stream | stream := WriteStream on: String new. aSymbol do: [:each | stream position = 0 ifTrue: [stream nextPut: each asUppercase] ifFalse: [each isUppercase ifTrue: [stream nextPut: $ ; nextPut: each] ifFalse: [stream nextPut: each]]]. ^stream contents
menus menus isNil ifTrue: [self loadMenus]. ^menus
</methods> <methods> Refactory.Browser.BrowserApplicationModel class <category>class initialization</category>
initialize self flushMenus
</methods> <methods> Refactory.Browser.BrowserApplicationModel class <category>store</category>
isStoreLoaded ^#{Store.DbRegistry} isDefined
</methods> <methods> Refactory.Browser.BrowserApplicationModel class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.NavigatorPart <category>changing</category>
changed self showWaitCursorWhile: [self changed: #navigatorState with: navigator getState]
changed: anAspectSymbol with: aParameter self dependents isEmpty ifTrue: [^navigator changedPart: self]. ^super changed: anAspectSymbol with: aParameter
changeRequest ^navigator changeRequest
</methods> <methods> Refactory.Browser.NavigatorPart <category>accessing</category>
dispatcher ^self navigator dispatcher
navigator ^navigator
</methods> <methods> Refactory.Browser.NavigatorPart <category>private</category>
allProtocolsIn: aNavigatorState | protocols class | class := aNavigatorState selectedClass. (class notNil and: [aNavigatorState objectNames size = 1 and: [aNavigatorState parcels notEmpty or: [aNavigatorState pundles notEmpty]]]) ifTrue: [protocols := Set new. self inheritedClassesOf: class do: [:each | protocols addAll: each organization categories "Was self environment protocolsFor: each"]] ifFalse: [protocols := #()]. ^protocols
allSharedVariableProtocolsIn: aNavigatorState | protocols class | class := aNavigatorState classOrNameSpace. (class notNil and: [aNavigatorState objectNames size = 1 and: [aNavigatorState parcels notEmpty or: [aNavigatorState pundles notEmpty]]]) ifTrue: [protocols := Set new. self inheritedClassesOf: class do: [:each | protocols addAll: (self environment sharedVariableProtocolsFor: each)]] ifFalse: [protocols := #()]. ^protocols
codeToolHasChanges | browser | browser := self navigator dispatcher browser. browser isNil ifTrue: [^false]. ^browser currentToolset isEditing
environment ^navigator environment
inheritedClassesOf: aClass do: aBlock | currentClass inheritToClass | aClass isBehavior ifFalse: [^aBlock value: aClass]. currentClass := aClass. inheritToClass := navigator inheritToClass. inheritToClass isNil ifFalse: [inheritToClass := inheritToClass superclass]. [currentClass isNil or: [inheritToClass == currentClass]] whileFalse: [aBlock value: currentClass. currentClass := currentClass superclass]
</methods> <methods> Refactory.Browser.NavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState self subclassResponsibility
initiallyOpened: aNavigatorState ^self selectState: aNavigatorState
</methods> <methods> Refactory.Browser.NavigatorPart <category>private-selectors</category>
allMethodDefinitionsFor: aProtocol in: class | selectors | selectors := OrderedCollection new. self inheritedClassesOf: class do: [:each | selectors addAll: ((navigator environment selectorsFor: aProtocol in: each) collect: [:sel | RBMethodDefinition class: class implementor: each selector: sel])]. ^selectors
allSelectorsFor: aProtocol in: class | selectors | selectors := Set new. self inheritedClassesOf: class do: [:each | selectors addAll: (navigator environment selectorsFor: aProtocol in: each)]. ^selectors
allSharedVariableDefinitionsFor: aProtocol in: class | sharedVariables | sharedVariables := OrderedCollection new. self inheritedClassesOf: class do: [:each | sharedVariables addAll: ((self environment sharedVariablesFor: aProtocol in: each) collect: [:var | RBInitializerDefinition nameSpace: each key: var])]. ^sharedVariables
allSharedVariablesFor: aProtocol in: class | sharedVariables | sharedVariables := Set new. self inheritedClassesOf: class do: [:each | sharedVariables addAll: (self environment sharedVariablesFor: aProtocol in: each)]. ^sharedVariables
methodClassFor: aSelector in: aClass | definingClass | definingClass := aClass whichClassIncludesSelector: aSelector. ^definingClass isNil ifTrue: [aClass] ifFalse: [definingClass]
methodDefinitionsIn: aProtocol | class defs parcels pundles | class := navigator selectedClass. class isNil ifTrue: [^#()]. defs := self allMethodDefinitionsFor: aProtocol in: class. defs isEmpty ifTrue: [^#()]. navigator showOnlyFiltered not ifTrue: [^defs]. (parcels := navigator parcels) notEmpty ifTrue: [ ^defs select: [:each | parcels anySatisfy: [:parcel | parcel definesSelector: each selector forClass: each implementingClass]]]. pundles := navigator pundles. ^defs select: [:each | each inheritingClass ~= each implementingClass or: [ pundles anySatisfy: [:pundle | pundle includesSelector: each selector className: each implementingClass instanceBehavior absoluteName meta: each implementingClass isMeta]]]
sharedVariableClassFor: aSelector in: aClass | definingClass | aClass isBehavior ifFalse: [^aClass]. definingClass := aClass whichClassDefinesSharedVariable: aSelector. ^definingClass isNil ifTrue: [aClass] ifFalse: [definingClass]
sharedVariableDefinitionsIn: aProtocol | vars class codeComponents | class := navigator classOrNameSpace. vars := #(). class notNil ifTrue: [vars := self allSharedVariableDefinitionsFor: aProtocol in: class]. vars isEmpty ifTrue: [^#()]. navigator showOnlyFiltered ifFalse: [^vars]. codeComponents := OrderedCollection withAll: navigator parcels. codeComponents addAll: navigator packages. ^vars select: [:var | codeComponents anySatisfy: [:each | each definesName: var variableName in: var classOrNameSpace]]
sharedVariablesIn: aProtocol | vars class codeComponents | class := navigator classOrNameSpace. vars := #(). class notNil ifTrue: [vars := self allSharedVariablesFor: aProtocol in: class]. vars isEmpty ifTrue: [^#()]. navigator showOnlyFiltered not ifTrue: [^vars]. codeComponents := OrderedCollection withAll: navigator parcels. codeComponents addAll: navigator packages. ^vars select: [:var | | definingClass | definingClass := self sharedVariableClassFor: var in: class. codeComponents anySatisfy: [:each | each definesName: var in: definingClass]]
</methods> <methods> Refactory.Browser.NavigatorPart <category>initialize-release</category>
navigator: aNavigator navigator := aNavigator
</methods> <methods> Refactory.Browser.NavigatorPart <category>updating widgets</category>
selectState: aNavigatorState self subclassResponsibility
updateWithState: aNavigatorState self subclassResponsibility
</methods> <methods> Refactory.Browser.NavigatorPart <category>updating</category>
update: anAspectSymbol with: aParameter from: aSender anAspectSymbol == #navigatorState ifFalse: [^super update: anAspectSymbol with: aParameter from: aSender]. self updateWithState: aParameter. self changed: anAspectSymbol with: aParameter
</methods> <methods> Refactory.Browser.NavigatorPart <category>error handling</category>
doesNotUnderstand: aMessage ^(navigator respondsTo: aMessage selector) ifTrue: [navigator perform: aMessage selector withArguments: aMessage arguments] ifFalse: [super doesNotUnderstand: aMessage]
</methods> <methods> Refactory.Browser.NavigatorPart class <category>instance creation</category>
onNavigator: aNavigator ^(self new) navigator: aNavigator; yourself
</methods> <methods> Refactory.Browser.NavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.MetaNavigatorPart <category>initialize-release</category>
initialize super initialize. self metaHolder value: false
</methods> <methods> Refactory.Browser.MetaNavigatorPart <category>aspects</category>
metaHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^metaHolder isNil ifTrue: [metaHolder := nil asValue] ifFalse: [metaHolder]
</methods> <methods> Refactory.Browser.MetaNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState self metaHolder value: aNavigatorState isMeta
updateWithState: aNavigatorState aNavigatorState type: (self metaHolder value ifTrue: [#class] ifFalse: [#instance])
</methods> <methods> Refactory.Browser.MetaNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState type: (self metaHolder value ifTrue: [#class] ifFalse: [#instance])
</methods> <methods> Refactory.Browser.MetaNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>utility</category>
clearAll selectionIndexHolder value: self newSelections
selectAll selectionIndexHolder value: (self selectionClass withAll: (1 to: listHolder value size))
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>initialize-release</category>
initialize super initialize. self selectionIndexHolder: self newSelections asValue
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>private</category>
newSelections ^self selectionClass new
selectionClass ^OrderedCollection
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>selections in list</category>
selections | list oc | oc := OrderedCollection new. list := listHolder value. selectionIndexHolder value do: [:i | (i between: 1 and: list size) ifTrue: [oc add: (list at: i)]]. ^oc
selections: aCollection | s l index | s := self newSelections. l := listHolder value. aCollection do: [:val | ((index := l indexOf: val ifAbsent: []) notNil and: [(s includes: index) not]) ifTrue: [s add: index]]. self selectionIndexes: s
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>accessing</category>
zeroIndex ^self newSelections
</methods> <methods> Refactory.Browser.RBMultiSelectionInList <category>updating</category>
update: anAspect with: aParameter from: anObject anObject == selectionIndexHolder ifTrue: [^self changed: #selectionIndex]. (anObject == listHolder and: [(#(#selectionChanged #selectionChanging) includes: anAspect) not]) ifFalse: [^self]. selectionIndexHolder setValue: self newSelections. self changed: #list. selectionIndexHolder changed: #value
</methods> <methods> Refactory.Browser.RBInitializerDefinition <category>printing</category>
displayString ^self variableName asString
</methods> <methods> Refactory.Browser.RBInitializerDefinition <category>private</category>
species ^InitializerDefinition
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>drag and drop</category>
canAcceptDropFrom: aDC ^false
doDrag: aDC
doDragAndDrop: aSymbol for: aController | data class | data := DragDropData new. data key: aSymbol. data contextWindow: self builder window. data contextWidget: aController view. data contextApplication: self. data clientData: IdentityDictionary new. data clientData at: #navigatorState put: navigator getState. data clientData at: #environment put: navigator nameSpace. data clientData at: #selector put: navigator selectors. class := navigator selectedClass. data clientData at: #class put: (class isNil ifTrue: [nil] ifFalse: [class]). data clientData at: #protocol put: navigator protocol. data clientData at: #meta put: navigator isMeta. (DragDropManager withDropSource: DropSource new withData: data) doDragDrop
dragEnter: aDragContext (self canAcceptDropFrom: aDragContext) ifFalse: [^#dropEffectNone]. aDragContext dropTarget clientData: (self initialDropStateFor: #objectList). ^#dropEffectMove
dragLeave: aDragContext self restoreListStateFrom: aDragContext dropTarget clientData. aDragContext dropTarget clientData: nil. ^#dropEffectNone
dragOver: aDC ^#dropEffectNone
drop: aDC ^#dropEffectNone
dropAllDefinitionsFrom: aDictionary ^(self dropStateFrom: aDictionary) allDefinitions
dropCategoriesFrom: aDictionary ^(self dropStateFrom: aDictionary) categories
dropClassFrom: aDictionary ^(self dropStateFrom: aDictionary) selectedClass
dropClassNameFrom: aDictionary ^(self dropStateFrom: aDictionary) objectName
dropClassNamesFrom: aDictionary ^(self dropStateFrom: aDictionary) objectNames
dropClassOrNameSpaceFrom: aDictionary ^(self dropStateFrom: aDictionary) classOrNameSpace
dropDefinitionsFrom: aDictionary ^(self dropStateFrom: aDictionary) definitions
dropMetaFrom: aDictionary ^(self dropStateFrom: aDictionary) isMeta
dropNameSpaceFrom: aDictionary ^(self dropStateFrom: aDictionary) nameSpace
dropProtocolFrom: aDictionary ^(self dropStateFrom: aDictionary) protocol
dropProtocolsFrom: aDictionary ^(self dropStateFrom: aDictionary) protocols
dropSelectorsFrom: aDictionary ^(self dropStateFrom: aDictionary) selectors
dropSharedVariableNamesFrom: aDictionary ^(self dropStateFrom: aDictionary) sharedVariableNames
dropStateFrom: aDictionary | state | state := aDictionary at: #navigatorState ifAbsent: [nil]. state isNil ifTrue: [state := NavigatorState new. state nameSpace: (aDictionary at: #environment ifAbsent: [Smalltalk]); objectName: (aDictionary at: #class ifAbsent: [nil]); type: ((aDictionary at: #meta ifAbsent: [false]) ifTrue: [#class] ifFalse: [#instance]); protocol: (aDictionary at: #protocol ifAbsent: [nil]); selector: (aDictionary at: #selector ifAbsent: [nil])]. ^state
wantToDrag: aDC ^false
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>accessing</category>
visualBlock: aBlock visualBlock := aBlock. self updateVisualBlock
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>actions</category>
doubleClickItem
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>interface opening</category>
changeMultiSelectionList: aSymbol | specWrapper | specWrapper := builder componentAt: aSymbol. specWrapper isNil ifTrue: [^self]. specWrapper widget changeClassTo: RBMultiSelectionView
postBuildWith: aBuilder super postBuildWith: aBuilder. self changeMultiSelectionList: #objectList. self updateVisualBlock
updateVisualBlock visualBlock isNil ifTrue: [^self]. self visualBlockFor: #objectList is: [:view :index | visualBlock value: self value: view value: index]
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>private</category>
addToList: anObject | index | index := (1 to: self objectList list size) detect: [:i | anObject = (self objectList list at: i) or: [self sortBlock value: anObject value: (self list at: i)]] ifNone: [^self list add: anObject]. anObject = (self objectList list at: index) ifTrue: [^self]. self objectList list add: anObject beforeIndex: index
displayTextFor: anObject ^anObject displayString
iconFor: anObject ^nil
invalidateObjectListWidget self invalidateComponent: #objectList
list ^self objectList list
list: aList ^self objectList list: aList
listLabelFor: anObject | text label icon | text := self displayTextFor: anObject. icon := self showIcons ifTrue: [self iconFor: anObject] ifFalse: [nil]. label := (icon notNil ifTrue: [LabelAndIcon] ifFalse: [Label]) with: text. label icon: icon. label offset: (self offsetFor: anObject andIcon: icon). ^label
mergeIntoList: newList | newIndex oldIndex new old removeSize | newIndex := 1. oldIndex := 1. [newIndex <= newList size] whileTrue: [new := newList at: newIndex. oldIndex <= self objectList list size ifTrue: [old := self objectList list at: oldIndex. new = old ifTrue: [newIndex := newIndex + 1. oldIndex := oldIndex + 1] ifFalse: [(self sortBlock value: new value: old) ifTrue: [self objectList list add: new beforeIndex: oldIndex] ifFalse: [self objectList list removeAtIndex: oldIndex]]] ifFalse: [| appendedItems | appendedItems := newList copyFrom: newIndex to: newList size. appendedItems notEmpty ifTrue: [self objectList list addAll: appendedItems]. ^self]]. removeSize := self objectList list size - oldIndex + 1. removeSize < 1 ifTrue: [^self]. self objectList list removeLast: removeSize
noIconOffset ^21 @ 0
offsetFor: anObject andIcon: anIcon ^(anIcon isNil and: [self showIcons]) ifTrue: [self noIconOffset] ifFalse: [0 @ 0]
overriddenColor ^ColorValue red
select: aCollection self select: aCollection in: self objectList
select: aCollection in: aSelectionInList | selections | aSelectionInList selections = aCollection ifTrue: [^self]. selections := aCollection select: [:each | aSelectionInList list includes: each]. aSelectionInList selections: selections
selection ^self selections detect: [:each | true] ifNone: [nil]
selections ^self objectList selections
sortBlock "Return a sort block that defines a total order on our elements." ^[:a :b | a < b]
sortList: aCollection ^(aCollection asSortedCollection: self sortBlock) asList
updateListWith: aCollection "self list = aCollection ifTrue: [^self invalidateComponent: #objectList]." (self objectList list isEmpty and: [aCollection isEmpty]) ifTrue: [^self]. self list: (self sortList: aCollection)
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>menus</category>
defaultMenu ^self subclassResponsibility
menu menu isNil ifTrue: [menu := self defaultMenu]. ^menu
menu: aMenu menu := aMenu. self setMenuOf: #objectList to: aMenu
rebuildMenus menu := nil. self setMenu: self menu for: #objectList
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>aspects</category>
objectList ^objectList isNil ifTrue: [objectList := RBMultiSelectionInList new] ifFalse: [objectList]
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter
refreshListDisplay self invalidateComponent: #objectList
update: anAspectSymbol with: aParameter from: aSender ^aSender == ChangeSet ifTrue: [self changeSetUpdate: anAspectSymbol with: aParameter] ifFalse: [super update: anAspectSymbol with: aParameter from: aSender]
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>initialize-release</category>
initialize super initialize. ChangeSet addDependent: self
release ChangeSet removeDependent: self. super release
</methods> <methods> Refactory.Browser.ListNavigatorPart <category>testing</category>
showIcons ^false
</methods> <methods> Refactory.Browser.ListNavigatorPart class <category>accessing</category>
defaultVisualBlock defaultVisualBlock isNil ifTrue: [self initializeDefaultVisualBlock]. ^defaultVisualBlock isNil ifTrue: [self = ListNavigatorPart ifTrue: [nil] ifFalse: [superclass defaultVisualBlock]] ifFalse: [defaultVisualBlock]
defaultVisualBlock: aBlock "self withAllSubclasses do: [:each | each defaultVisualBlock: nil]" defaultVisualBlock := aBlock
initializeDefaultVisualBlock self defaultVisualBlock: [:np :view :index | | definition label | definition := view sequence at: index. label := np listLabelFor: definition. label attributes: view textStyle. label]
showHorizontalScrollbar ^ShowHorizontalScrollbar
showHorizontalScrollbar: aBoolean ShowHorizontalScrollbar := aBoolean
</methods> <methods> Refactory.Browser.ListNavigatorPart class <category>instance creation</category>
new ^(super new) visualBlock: self defaultVisualBlock; yourself
</methods> <methods> Refactory.Browser.ListNavigatorPart class <category>interface specs</category>
windowSpec "Some very hackish code that adds the horizontal scrollbar to the list. If you know of a better way to do this, please feel free to clean it up :)." | spec allSpecs index listSpec flagsIndex | ShowHorizontalScrollbar ifFalse: [^self basicWindowSpec]. spec := self basicWindowSpec copy. spec at: spec size put: spec last copy. allSpecs := spec last last copy. index := (1 to: allSpecs size) detect: [:each | (allSpecs at: each) includes: #objectList] ifNone: [nil]. index isNil ifTrue: [^spec]. listSpec := allSpecs at: index. flagsIndex := listSpec indexOf: #flags:. flagsIndex odd ifTrue: [listSpec at: flagsIndex + 1 put: ((listSpec at: flagsIndex + 1) bitOr: 2)] ifFalse: [allSpecs at: index put: (allSpecs at: index) , #(#flags: 15)]. spec last at: spec last size put: allSpecs. ^spec
</methods> <methods> Refactory.Browser.ListNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart <category>testing</category>
hasMethodsIn: aSymbol ^(self methodDefinitionsIn: aSymbol) notEmpty
hasSharedVariablesIn: aSymbol ^(self sharedVariablesIn: aSymbol) notEmpty
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState | protocols | protocols := OrderedCollection withAll: aNavigatorState protocols. self updateSelectedProtocols: protocols from: aNavigatorState. self fillInListFor: aNavigatorState. self select: protocols. aNavigatorState protocols: self selections
updateSelectedProtocols: protocols from: aNavigatorState self subclassResponsibility
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListFor: aNavigatorState. self select: initialSelections. aNavigatorState protocols: self selections
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart <category>private</category>
fillInListFor: aNavigatorState self subclassResponsibility
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState protocols: self selections
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #protocolMenu
</methods> <methods> Refactory.Browser.ProtocolNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.SelectorProtocolNavigatorPart <category>updating widgets</category>
updateSelectedProtocols: protocols from: aNavigatorState aNavigatorState methodDefinitions do: [:each | | protocol | protocol := self environment whichProtocolIncludes: each selector in: each implementingClass. (protocols includes: protocol) ifFalse: [protocols add: protocol]]
</methods> <methods> Refactory.Browser.SelectorProtocolNavigatorPart <category>private</category>
displayTextFor: protocol ^(self hasMethodsIn: protocol) ifTrue: [protocol asText] ifFalse: [('(' , protocol , ')') asText emphasizeAllWith: #italic]
fillInListFor: aNavigatorState | protocols | protocols := self allProtocolsIn: aNavigatorState. protocols isEmpty ifTrue: [aNavigatorState selectedClass ifNotNil: [:selectedClass | protocols := Array with: selectedClass initialMethodCategory]]. self updateListWith: protocols
sortBlock ^ProtocolOrder isNil ifTrue: [super sortBlock] ifFalse: [[:a :b | ProtocolOrder is: a before: b]]
</methods> <methods> Refactory.Browser.SelectorProtocolNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter ((anAspectSymbol == #reorganizeClass: and: [aParameter first = navigator selectedClass]) or: [anAspectSymbol == #changeSelector:class:protocol: and: [(aParameter at: 2) = navigator selectedClass]]) ifTrue: [self mergeIntoList: ((self allProtocolsIn: navigator state) asSortedCollection: self sortBlock)]
</methods> <methods> Refactory.Browser.SelectorProtocolNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.SelectorProtocolNavigatorPart class <category>accessing</category>
protocolOrder ^ProtocolOrder
protocolOrder: aProtocolSortOrder ProtocolOrder := aProtocolSortOrder
protocolOrderChoices ^ProtocolOrderChoices
</methods> <methods> Refactory.Browser.SharedVariableProtocolNavigatorPart <category>updating widgets</category>
updateSelectedProtocols: protocols from: aNavigatorState aNavigatorState sharedVariableDefinitions do: [:each | | protocol | protocol := self environment whichProtocolIncludesVariable: each variableName in: each classOrNameSpace. (protocols includes: protocol) ifFalse: [protocols add: protocol]]
</methods> <methods> Refactory.Browser.SharedVariableProtocolNavigatorPart <category>private</category>
displayTextFor: protocol ^(self hasSharedVariablesIn: protocol) ifTrue: [protocol asText] ifFalse: [('(' , protocol , ')') asText emphasizeAllWith: #italic]
fillInListFor: aNavigatorState | classes protocols | classes := aNavigatorState classesAndNameSpaces. (classes size = 1 and: [aNavigatorState parcels notEmpty or: [aNavigatorState pundles notEmpty]]) ifTrue: [protocols := Set new. self inheritedClassesOf: classes asArray first do: [:each | protocols addAll: each asNameSpace organization sharedVariableCategories "self environment sharedVariableProtocolsFor: each"]] ifFalse: [protocols := #()]. self updateListWith: protocols
</methods> <methods> Refactory.Browser.SharedVariableProtocolNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter ((#(#reorganizeClassData: #reorganizeNameSpace:) includes: anAspectSymbol) and: [aParameter first = navigator classOrNameSpace]) ifTrue: [self mergeIntoList: ((self allSharedVariableProtocolsIn: navigator state) asSortedCollection: self sortBlock)]
</methods> <methods> Refactory.Browser.SharedVariableProtocolNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>private</category>
fillInListFor: aNavigatorState self updateListWith: self parcelsForList
parcelsForList | parcels | parcels := OrderedCollection with: UnparceledParcel new. ^parcels addAll: Parcel parcels; yourself
sortBlock ^[:a :b | a name < b name]
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>updating widgets</category>
addBindingParcels: aNavigatorState to: parcels | bindings | bindings := aNavigatorState selectedBindings. bindings do: [:each | self addParcelsForBinding: each to: parcels]
addParcelsForBinding: each to: parcels | containingParcels | containingParcels := Parcel parcelsForBinding: each. ^(containingParcels isNil or: [containingParcels isEmpty]) ifTrue: [self addParcelsIfAbsent: (Array with: UnparceledParcel new) to: parcels] ifFalse: [self addParcelsIfAbsent: containingParcels to: parcels]
addParcelsIfAbsent: requiredParcels to: selectedParcels (requiredParcels anySatisfy: [:each | selectedParcels includes: each]) ifTrue: [^self]. selectedParcels addAll: requiredParcels
addSelectorParcels: aNavigatorState to: parcels | selectors class | navigator showOnlyFiltered ifFalse: [^self]. selectors := aNavigatorState selectors. selectors isEmpty ifTrue: [^self]. class := aNavigatorState selectedClass. class isNil ifTrue: [^self]. selectors do: [:each | | definingParcels | definingParcels := Parcel parcelsDefiningSelector: each inClass: class. definingParcels isEmpty ifTrue: [self addParcelsIfAbsent: (Array with: UnparceledParcel new) to: parcels] ifFalse: [self addParcelsIfAbsent: definingParcels to: parcels]]
addSharedVariableParcels: aNavigatorState to: parcels | vars class | navigator showOnlyFiltered ifFalse: [^self]. vars := aNavigatorState sharedVariableNames. vars isEmpty ifTrue: [^self]. class := aNavigatorState classOrNameSpace. class isNil ifTrue: [^self]. vars do: [:each | | binding | binding := class bindingFor: each. binding notNil ifTrue: [self addParcelsForBinding: binding to: parcels]]
parcelsDefiningBinding: aBinding | parcels realParcels | parcels := (UnparceledParcel isBindingUnparceled: aBinding) ifTrue: [OrderedCollection with: UnparceledParcel new] ifFalse: [OrderedCollection new]. realParcels := Parcel parcelsForBinding: aBinding. realParcels notNil ifTrue: [parcels addAll: realParcels]. ^parcels
parcelsForClass: each | parcels realParcels | parcels := (UnparceledParcel isUnparceled: each) ifTrue: [OrderedCollection with: UnparceledParcel new] ifFalse: [OrderedCollection new]. realParcels := Parcel parcelsForClass: each. realParcels notNil ifTrue: [parcels addAll: realParcels]. ^parcels
selectState: aNavigatorState | parcels | self fillInListFor: aNavigatorState. parcels := OrderedCollection withAll: aNavigatorState parcels. self addSelectorParcels: aNavigatorState to: parcels; addSharedVariableParcels: aNavigatorState to: parcels; addBindingParcels: aNavigatorState to: parcels. aNavigatorState parcels: parcels. self select: parcels
updateWithState: aNavigatorState | parcels | parcels := aNavigatorState parcels. self fillInListFor: aNavigatorState. parcels := parcels select: [:each | self list includes: each]. (parcels isEmpty and: [self shouldSelectParcels]) ifTrue: [parcels := self list]. aNavigatorState parcels: parcels. self select: parcels
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState parcels: self selections
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>testing</category>
shouldSelectParcels ^self list size = 1
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #parcelMenu
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter anAspectSymbol == #unloadComponent: ifTrue: [self list remove: aParameter first ifAbsent: []]. anAspectSymbol == #loadParcel: ifTrue: [self loadParcel: aParameter first]
loadParcel: parcel self addToList: parcel
</methods> <methods> Refactory.Browser.ParcelNavigatorPart <category>accessing</category>
displayTextFor: anObject ^anObject isUnparceledParcel ifTrue: [super displayTextFor: anObject] ifFalse: [anObject listEntry]
</methods> <methods> Refactory.Browser.ParcelNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.HierarchyParcelNavigatorPart <category>private</category>
allSelectedClassesFor: aNavigatorState | classes | classes := Set new. aNavigatorState selectedClasses do: [:each | self inheritedClassesOf: each do: [:class | classes add: class]]. ^classes
parcelsForClasses: classes | parcels | parcels := Set new. classes do: [:each | | pcls | pcls := Parcel parcelsForClass: each. pcls notNil ifTrue: [parcels addAll: pcls]]. (classes anySatisfy: [:each | (UnparceledParcel isUnparceled: each) or: [UnparceledParcel isUnparceled: each class]]) ifTrue: [parcels add: UnparceledParcel new]. ^parcels
parcelsForList | classes | classes := self allSelectedClassesFor: navigator state. ^self parcelsForClasses: classes
</methods> <methods> Refactory.Browser.HierarchyParcelNavigatorPart <category>testing</category>
shouldSelectParcels ^true
</methods> <methods> Refactory.Browser.HierarchyParcelNavigatorPart <category>updating</category>
loadParcel: parcel (navigator nonMetaClasses anySatisfy: [:each | parcel definesOrExtendsClass: each]) ifTrue: [self addToList: parcel]
</methods> <methods> Refactory.Browser.HierarchyParcelNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.InstanceVariableNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState | instVars | instVars := OrderedCollection withAll: aNavigatorState instanceVariables. self fillInListFor: aNavigatorState. self select: instVars
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListFor: aNavigatorState. self select: initialSelections
</methods> <methods> Refactory.Browser.InstanceVariableNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState instanceVariables: self selections
</methods> <methods> Refactory.Browser.InstanceVariableNavigatorPart <category>private</category>
fillInListFor: aNavigatorState | class | class := aNavigatorState selectedClass. self updateListWith: (class isNil ifTrue: [#()] ifFalse: [class allInstVarNames])
sortBlock ^ [:a :b | | class | class := self navigator selectedClass. class isNil ifTrue: [a <= b] ifFalse: [(class instVarIndexFor: a) <= (class instVarIndexFor: b)]]
</methods> <methods> Refactory.Browser.InstanceVariableNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #instanceVariableMenu
</methods> <methods> Refactory.Browser.InstanceVariableNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.RBCommand <category>accessing</category>
action ^action
action: aSymbol action := aSymbol
description ^description
description: aString description := aString
enabled ^enabled
enabled: aSymbol enabled := aSymbol
key ^name isString ifTrue: [name] ifFalse: [name defaultString]
name ^name
name: aString name := aString
receiver ^receiver
receiver: aSymbol receiver := aSymbol
</methods> <methods> Refactory.Browser.RBCommand <category>comparing</category>
= aRBActionSpecification ^self class = aRBActionSpecification class and: [self key = aRBActionSpecification key and: [self receiver = aRBActionSpecification receiver]]
hash ^self key hash bitXor: self receiver hash
</methods> <methods> Refactory.Browser.RBCommand <category>initialize-release</category>
initialize name := 'A name'. description := 'A description'. action := #yourself. receiver := #yourself
</methods> <methods> Refactory.Browser.RBCommand <category>testing</category>
isCheckedActionSpecification ^false
isEnabledFor: anObject | receiverObj | receiverObj := [self receiverFor: anObject] on: Error do: [:ex | ^false]. (action isSymbol not or: [receiverObj respondsTo: action]) ifFalse: [^false]. enabled isNil ifTrue: [^true]. enabled isSymbol ifFalse: [^enabled value: receiverObj]. ^[self perform: enabled on: receiverObj] on: Error do: [:ex | ex return: ([self perform: enabled on: anObject] on: Error do: [:exc | exc return: false])]
</methods> <methods> Refactory.Browser.RBCommand <category>converting</category>
literalArrayEncoding ^(Array new: 6) at: 1 put: self class fullyQualifiedReference; at: 2 put: self nameUserMessage literalArrayEncoding; at: 3 put: self descriptionUserMessage literalArrayEncoding; at: 4 put: self action; at: 5 put: self enabled; at: 6 put: self receiver; yourself
</methods> <methods> Refactory.Browser.RBCommand <category>printing</category>
printOn: aStream aStream nextPutAll: self key
</methods> <methods> Refactory.Browser.RBCommand <category>actions</category>
performWith: anObject ^action isSymbol ifTrue: [self perform: action on: (self receiverFor: anObject)] ifFalse: [action numArgs = 1 ifTrue: [action value: (self receiverFor: anObject)] ifFalse: [action value]]
receiverFor: anObject ^self perform: receiver on: anObject
</methods> <methods> Refactory.Browser.RBCommand <category>private</category>
descriptionUserMessage (description respondsTo: #catalogID) ifTrue: [^description]. ^UserMessage defaultString: description key: (self userMessageKey, 'Desc') asSymbol catalogID: #browser
nameUserMessage (name respondsTo: #catalogID) ifTrue: [^name]. ^UserMessage defaultString: name key: self userMessageKey catalogID: #browser
perform: aSymbol on: anObject ^(anObject respondsTo: aSymbol) ifTrue: [anObject perform: aSymbol] ifFalse: [Error raise]
userMessageKey | result input upper | (name respondsTo: #catalogID) ifTrue: [^name key]. result := WriteStream on: (String new: 50). input := name readStream. upper := true. result nextPutAll: 'Cmd'. [input atEnd] whileFalse: [ | char | char := input next. (char isLetter or: [char isDigit]) ifTrue: [result nextPut: (upper ifTrue: [char asUppercase] ifFalse: [char])]. char = $: ifTrue: [result nextPut: $C]. char = $& ifTrue: [result nextPut: $_]. char = $. ifTrue: [result nextPut: $D]. upper := char isSeparator]. ^result contents asSymbol
</methods> <methods> Refactory.Browser.RBCommand class <category>actions</category>
actionNamed: aString ^self actions at: aString ifAbsent: [self error: 'Action not found']
actions Actions isNil ifTrue: [self initializeActions]. ^Actions
addAction: aRBActionSpecification (Actions includesKey: aRBActionSpecification key) ifTrue: [self halt: 'The action already exists. Select proceed to override the original action.']. Actions at: aRBActionSpecification key put: aRBActionSpecification
removeAction: aRBActionSpecification | action | action := Actions at: aRBActionSpecification key ifAbsent: [^self]. action == aRBActionSpecification ifFalse: [^self]. Actions removeKey: aRBActionSpecification key
</methods> <methods> Refactory.Browser.RBCommand class <category>instance creation</category>
decodeFromLiteralArray: anArray ^self named: (self decodeStringOrArray: (anArray at: 2)) description: (self decodeStringOrArray: (anArray at: 3)) action: (anArray at: 4) enabled: (anArray at: 5) receiver: (anArray at: 6)
named: aStringOrUserMessage ^(self new) name: aStringOrUserMessage; description: aStringOrUserMessage; yourself
named: aStringOrUserMessage description: aDescriptionString action: aSelector enabled: enabledSelector receiver: receiverSelector ^(self new) name: aStringOrUserMessage; description: aDescriptionString; action: aSelector; enabled: enabledSelector; receiver: receiverSelector; yourself
named: aStringOrUserMessage description: aDescriptionString action: aSelector receiver: receiverSelector ^(self new) name: aStringOrUserMessage; description: aDescriptionString; action: aSelector; receiver: receiverSelector; yourself
new ^(super new) initialize; yourself
</methods> <methods> Refactory.Browser.RBCommand class <category>actions-initialization</category>
actionArray "This method was automatically generated from 'Refactory.Browser.RBActionEditor open'" "self initializeActions" "BrowserApplicationModel flushMenus" ^#(#(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AbstractClassInstanceVariable #defaultString: 'Abstract Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AbstractClassInstanceVariableDesc #defaultString: 'Create accessing methods for a class instance variable and change all direct variable references to use them' #catalogID: #browser) #abstractClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AbstractInstanceVariable #defaultString: 'Abstract Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AbstractInstanceVariableDesc #defaultString: 'Create accessing methods for an instance variable and change all direct variable references to use them' #catalogID: #browser) #abstractInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AbstractSelectedInstanceVariable #defaultString: 'Abstract Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AbstractSelectedInstanceVariableDesc #defaultString: 'Abstract all references to the selected variable to use accessing methods' #catalogID: #browser) #abstractInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #Accept #defaultString: 'Accept' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AcceptDesc #defaultString: 'Save the current text' #catalogID: #browser) #acceptText #isEditing #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddActionSpecification #defaultString: 'Add Action Specification' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddActionSpecificationDesc #defaultString: 'Create a new action specification' #catalogID: #browser) #addSpecification nil #yourself) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddClassInstanceVariable #defaultString: 'Add Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddClassInstanceVariableDesc #defaultString: 'Add a class instance variable to the selected class' #catalogID: #browser) #addClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddFromChangeSet #defaultString: 'Add from Change Set' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddFromChangeSetDesc #defaultString: 'Add contents of the current change set' #catalogID: #browser) #checkChangeSet nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddInstanceVariable #defaultString: 'Add Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddInstanceVariableDesc #defaultString: 'Add an instance variable to the selected class' #catalogID: #browser) #addInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddParameter #defaultString: 'Add Parameter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddParameterDesc #defaultString: 'Add a parameter to the selected method and change all senders to pass a default argument' #catalogID: #browser) #addParameter #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #AddProtocol #defaultString: 'Add Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #AddProtocolDesc #defaultString: 'Add a new protocol to the class' #catalogID: #browser) #addProtocol #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BindTemporaryToTightestScope #defaultString: 'Bind Temporary to Tightest Scope' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BindTemporaryToTightestScopeDesc #defaultString: 'Move a temporary variable''s definition to the innermost scope in which it is used' #catalogID: #browser) #bindTight #hasTemporarySelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BrowseChangeSetMethodVersions #defaultString: 'Browse Change Set Method Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BrowseChangeSetMethodVersionsDesc #defaultString: 'Open a change list on all versions of the method in the .cha file.' #catalogID: #browser) #browseMethodChanges #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BrowseClassMethodsMatchingString #defaultString: 'Browse Class Methods Matching String' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BrowseClassMethodsMatchingStringDesc #defaultString: 'Open a browser on all methods of the selected class matching a pattern.' #catalogID: #browser) #browseMethodsWithSourceMatching #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BrowseOverridden #defaultString: 'Browse Overridden' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BrowseOverriddenDesc #defaultString: 'Browse all methods overridden by other components' #catalogID: #browser) #browseOverridden #isCodeComponentSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BrowseOverrides #defaultString: 'Browse Overrides' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BrowseOverridesDesc #defaultString: 'Browse all methods overridden by the current selection' #catalogID: #browser) #browseOverrides #isCodeComponentSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #BrowseReferencesToClass #defaultString: 'Browse References to Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalClassReferencesDesc #defaultString: 'Browse all references to the selected class' #catalogID: #browser) #browseReferencesToGlobal #hasClassSelected #activeTool) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #Buffers #defaultString: 'Buffers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #BuffersDesc #defaultString: 'Dynamic menu of buffers' #catalogID: #browser) #bufferMenuSpecifications nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ByteIndexedClassTemplate #defaultString: 'Byte Indexed Class Template' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ByteIndexedClassTemplateDesc #defaultString: 'Display a template for creating a byte-indexed class' #catalogID: #browser) #showBytesClassTemplate #canDefineClassesAndNameSpaces #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #Cancel #defaultString: 'Cancel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CancelDesc #defaultString: 'Cancel changes and revert to the original text' #catalogID: #browser) #cancelText #isEditing #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllImplementors #defaultString: 'Check All Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllImplementorsDesc #defaultString: 'Add all implementors of the selected method' #catalogID: #browser) #checkImplementors #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllMethods #defaultString: 'Check All Methods' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllMethodsDesc #defaultString: 'Add all methods matching a pattern' #catalogID: #browser) #checkAllSelectors #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllProtocols #defaultString: 'Check All Protocols' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllProtocolsDesc #defaultString: 'Add all protocols matching a pattern' #catalogID: #browser) #checkAllProtocols #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllSenders #defaultString: 'Check All Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllSendersDesc #defaultString: 'Add all senders of the selected method' #catalogID: #browser) #checkSenders #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllSubclasses #defaultString: 'Check All Subclasses' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllSubclassesDesc #defaultString: 'Add all the class'' subclasses' #catalogID: #browser) #checkSubclasses #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckAllSuperclasses #defaultString: 'Check All Superclasses' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckAllSuperclassesDesc #defaultString: 'Add all the class'' superclasses ' #catalogID: #browser) #checkSuperclasses #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckClass #defaultString: 'Check Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckClassDesc #defaultString: 'Add the selected class' #catalogID: #browser) #checkClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckMethod #defaultString: 'Check Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckMethodDesc #defaultString: 'Add the selected methods' #catalogID: #browser) #checkSelector #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CheckProtocol #defaultString: 'Check Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CheckProtocolDesc #defaultString: 'Add the selected protocols' #catalogID: #browser) #checkProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ClassesDefiningVariable #defaultString: 'Classes Defining Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReferencesToSymbolDesc #defaultString: 'Find references to a symbol within the current scope of the browser' #catalogID: #browser) #browseVariables nil #browser) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #CodeModelToolsMenu #defaultString: 'Code Model Tools Menu' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CodeModelToolsMenuDesc #defaultString: 'List of tool views supported by the code model' #catalogID: #browser) #selectionPolicyMenuSpecifications nil #codeModel) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ContextHelp #defaultString: 'Context Help' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ContextHelpDesc #defaultString: 'Open context sensitive help' #catalogID: #browser) #help nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ConvertTemporaryVariableToInstanceVariable #defaultString: 'Convert Temporary Variable to Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ConvertTemporaryVariableToInstanceVariableDesc #defaultString: 'Convert the selected temporary variable to an instance variable' #catalogID: #browser) #createInstVar #canPerformTemporaryVariableRefactorings #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ConvertToSibling #defaultString: 'Convert to Sibling' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ConvertToSiblingDesc #defaultString: 'Create an abstract class and make the selected class a sibling with its subclasses under the new abstract class' #catalogID: #browser) #convertToSibling #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CopySelection #defaultString: 'Copy Selection' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #Copy #defaultString: 'Copy' #catalogID: #browser) #copySelection #isTextSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CreateBuffer #defaultString: 'Create Buffer' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CreateBufferDesc #defaultString: 'Create a new view' #catalogID: #browser) #newBuffer nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CreateClassInstanceVariableAccessors #defaultString: 'Create Class Instance Variable Accessors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CreateInstanceVariableAccessorsDesc #defaultString: 'Create accessing methods for the selected instance variable' #catalogID: #browser) #createClassInstanceVariableAccessors #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CreateInstanceVariableAccessors #defaultString: 'Create Instance Variable Accessors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CreateInstanceVariableAccessorsDesc #defaultString: 'Create accessing methods for the selected instance variable' #catalogID: #browser) #createInstanceVariableAccessors #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CreateSelectedInstanceVariableAccessors #defaultString: 'Create Selected Instance Variable Accessors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CreateInstanceVariableAccessorsDesc #defaultString: 'Create accessing methods for the selected instance variable' #catalogID: #browser) #createInstanceVariableAccessors #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CreateSubclass #defaultString: 'Create Subclass' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CreateSubclassDesc #defaultString: 'Insert a class into the class hierarchy under the currently selected class' #catalogID: #browser) #createSubclass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CutSelection #defaultString: 'Cut Selection' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #Cut #defaultString: 'Cut' #catalogID: #browser) #cut #isTextSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #DebugIt #defaultString: 'Debug It' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #DebugItDesc #defaultString: 'Open a debugger on the currently selected code' #catalogID: #browser) #debugIt nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #DoIt #defaultString: 'Do It' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #DoItDesc #defaultString: 'Execute the selected text' #catalogID: #browser) #doIt nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ExplainCode #defaultString: 'Explain Code' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ExplainCodeDesc #defaultString: 'Explain the selected piece of code' #catalogID: #browser) #explain #isTextSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ExtractMethod #defaultString: 'Extract Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ExtractMethodDesc #defaultString: 'Extract the selected code into a new method' #catalogID: #browser) #extractMethod #canExtractMethod #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ExtractMethodToComponent #defaultString: 'Extract Method to Component' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ExtractMethodToComponentDesc #defaultString: 'Extract the selected code into a method in a different class' #catalogID: #browser) #extractToComponent #canExtractMethod #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ExtractToTemporary #defaultString: 'Extract to Temporary' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ExtractToTemporaryDesc #defaultString: 'Create a temporary variable assigned to the selection and replace it with the temporary' #catalogID: #browser) #extractToTemp #canExtractToTemporary #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileIntoPackage #defaultString: 'File Into Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileIntoPackageDesc #defaultString: 'Load Smalltalk source, compiling it into the selected package' #catalogID: #browser) #storeFileinPackage #isPackageSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutClass #defaultString: 'File Out Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutClassDesc #defaultString: 'File-out the selected classes' #catalogID: #browser) #fileOutClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CmdFileOutGlobal #defaultString: 'File Out Global' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CmdFileOutGlobalDesc #defaultString: 'File-out the selected class or namespace' #catalogID: #browser) #fileOutGlobal #isGlobalSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutMethod #defaultString: 'File Out Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutMethodDesc #defaultString: 'File-out the selected methods' #catalogID: #browser) #fileOutMessage #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutPackage #defaultString: 'File Out Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutPackageDesc #defaultString: 'File-out the selected package' #catalogID: #browser) #storeFileoutPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutPackageChanges #defaultString: 'File Out Package Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutPackageChangesDesc #defaultString: 'File-out the selected package''s changes' #catalogID: #browser) #storeFileoutPundleChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutPackageDifferences #defaultString: 'File Out Package Differences' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutPackageDifferencesDesc #defaultString: 'File-out the differences between the selected package and a version saved in the repository' #catalogID: #browser) #storeFileoutPundleDifferences #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FileOutProtocol #defaultString: 'File Out Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FileOutProtocolDesc #defaultString: 'File-out all methods in the selected protocols' #catalogID: #browser) #fileOutProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindClass #defaultString: 'Find Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindClassDesc #defaultString: 'Find a class' #catalogID: #browser) #findClass nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CmdFindGlobalName #defaultString: 'Find Global Name' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CmdFindGlobalNameDesc #defaultString: 'Find a class, a shared variable, or a name space' #catalogID: #browser) #findGlobalName nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindMethod #defaultString: 'Find Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindMethodDesc #defaultString: 'Find a method within the selected class' #catalogID: #browser) #findMethodAndSelectAlphabetic #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindNameSpace #defaultString: 'Find Name Space' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindNameSpaceDesc #defaultString: 'Find a name space.' #catalogID: #browser) #findNameSpace nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindPackage #defaultString: 'Find Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindPackageDesc #defaultString: 'Find a bundle or package' #catalogID: #browser) #findPundle nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindSharedVariable #defaultString: 'Find Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindSharedVariableDesc #defaultString: 'Find a Shared Variable' #catalogID: #browser) #findSharedVariable nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FindText #defaultString: 'Find Text' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FindTextDesc #defaultString: 'Find the specified text' #catalogID: #browser) #find #isTextTool #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #FormatCode #defaultString: 'Format Code' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #FormatCodeDesc #defaultString: 'Format a method' #catalogID: #browser) #format nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GenerateDefaultClassComment #defaultString: 'Generate Default Class Comment' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GenerateDefaultClassCommentDesc #defaultString: 'Generate a default class comment for the selected class' #catalogID: #browser) #generateDefaultComment nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableReaders #defaultString: 'Global Class Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing a class instance variable' #catalogID: #browser) #globalClassInstanceVariableReaders #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableReferences #defaultString: 'Global Class Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableReferencesDesc #defaultString: 'Browse all references to a class instance variable' #catalogID: #browser) #globalClassInstanceVariableReferences #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableWriters #defaultString: 'Global Class Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalClassInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying a class instance variable' #catalogID: #browser) #globalClassInstanceVariableWriters #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalClassReferences #defaultString: 'Global Class References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalClassReferencesDesc #defaultString: 'Browse all references to the selected class' #catalogID: #browser) #globalClassRefs #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalImplementors #defaultString: 'Global Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ImplementorsDesc #defaultString: 'Browse all implementors of the selected method' #catalogID: #browser) #browseGlobalImplementors #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #GlobalImplementorsActions #defaultString: 'Global Implementors Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ImplementorsActionsDesc #defaultString: 'Actions for Implementors' #catalogID: #browser) #globalImplementorsActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableReaders #defaultString: 'Global Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing an instance variable' #catalogID: #browser) #globalInstanceVariableReaders #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableReferences #defaultString: 'Global Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableReferencesDesc #defaultString: 'Browse all references to an instance variable' #catalogID: #browser) #globalInstanceVariableReferences #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableWriters #defaultString: 'Global Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying an instance variable' #catalogID: #browser) #globalInstanceVariableWriters #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalReferences #defaultString: 'Global References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReferencesDesc #defaultString: 'Browse all references to the specified shared variable' #catalogID: #browser) #browseReferencesToGlobal #hasGlobalSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalSenders #defaultString: 'Global Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SendersDesc #defaultString: 'Browse all senders of the selected method' #catalogID: #browser) #browseGlobalSenders #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #GlobalSendersActions #defaultString: 'Global Senders Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SendersActionsDesc #defaultString: 'Actions for Senders' #catalogID: #browser) #globalSendersActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #GlobalSharedVariableReferences #defaultString: 'Global Shared Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #GlobalSharedVariableReferencesDesc #defaultString: 'Browse all references to a shared variable' #catalogID: #browser) #globalSharedVariableReferences #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HardcopyClass #defaultString: 'Hardcopy Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HardcopyClassDesc #defaultString: 'Print the selected classes' #catalogID: #browser) #printOutClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HardcopyMethod #defaultString: 'Hardcopy Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HardcopyMethodDesc #defaultString: 'Print the selected methods' #catalogID: #browser) #printOutMessage #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HardcopyProtocol #defaultString: 'Hardcopy Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HardcopyProtocolDesc #defaultString: 'Print all methods in the selected protocols' #catalogID: #browser) #printOutProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HardcopyText #defaultString: 'Hardcopy Text' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HardcopyTextDesc #defaultString: 'Print the current text' #catalogID: #browser) #hardcopy #isTextTool #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HierarchyImplementors #defaultString: 'Hierarchy Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HierarchyImplementorsDesc #defaultString: 'Browse all implementors of the selected method within the hierarchy' #catalogID: #browser) #browseHierarchyImplementors #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #HierarchyImplementorsActions #defaultString: 'Hierarchy Implementors Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HierarchyImplementorsActionsDesc #defaultString: 'Dynamic menu of hierarchy implementors.' #catalogID: #browser) #hierarchyImplementorsActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #HierarchySenders #defaultString: 'Hierarchy Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HierarchySendersDesc #defaultString: 'Browse all senders of the specified method in the hierarchy' #catalogID: #browser) #browseHierarchySenders #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #HierarchySendersActions #defaultString: 'Hierarchy Senders Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #HierarchySendersActionsDesc #defaultString: 'Dynamic menu of hierarchy senders' #catalogID: #browser) #hierarchySendersActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #IconHelp #defaultString: 'Icon Help' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #IconHelpDesc #defaultString: 'Opens help for the browser''s icons.' #catalogID: #browser) #iconsHelp nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ImplementorsMatching #defaultString: 'Implementors Matching' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ImplementorsMatchingDesc #defaultString: 'Find all implementors whose selector matches the selector within the current scope of the browser' #catalogID: #browser) #browseImplementors nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #IndexedClassTemplate #defaultString: 'Indexed Class Template' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #IndexedClassTemplateDesc #defaultString: 'Display a template for creating an indexed class' #catalogID: #browser) #showIndexedClassTemplate #canDefineClassesAndNameSpaces #activeTool) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #InheritedClassesSpecifications #defaultString: 'Inherited Classes Specifications' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InheritedClassesSpecificationsDesc #defaultString: 'A dynamic menu showing the superclasses for inheriting methods. ' #catalogID: #browser) #inheritToSpecifications #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InitializeSharedVariable #defaultString: 'Initialize Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InitializeSharedVariableDesc #defaultString: 'Initialize a shared variable' #catalogID: #browser) #initializeSharedVariable #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineAllSelfSends #defaultString: 'Inline All Self Sends' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineAllSelfSendsDesc #defaultString: 'Inline the selected method into all senders of self, removing the method if there are no senders' #catalogID: #browser) #inlineSelfSends #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineMethod #defaultString: 'Inline Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineMethodDesc #defaultString: 'Inline the selected message send into the containing method; replace the original message send with the body of the method that is sent' #catalogID: #browser) #inlineMethod #hasMessageNodeSelectedForRefactoring #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineParameter #defaultString: 'Inline Parameter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineParameterDesc #defaultString: 'Convert the parameter of the method into a temporary defined in the method if all senders have the same argument' #catalogID: #browser) #inlineParameter #hasMethodArgumentSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineSelectedMessage #defaultString: 'Inline Selected Message' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineSelectedMessageDesc #defaultString: 'Inline the selected message into the current method' #catalogID: #browser) #inlineMethod #hasMessageNodeSelectedForRefactoring #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineSelectedParameter #defaultString: 'Inline Selected Parameter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineSelectedParameterDesc #defaultString: 'Inline the selected parameter from all senders' #catalogID: #browser) #inlineParameter #canPerformParameterRefactorings #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InlineTemporary #defaultString: 'Inline Temporary' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InlineTemporaryDesc #defaultString: 'Change all references to the temporary variable to its definition' #catalogID: #browser) #inlineTemporary #canPerformInlineAssignmentRefactoring #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InspectAllInstances #defaultString: 'Inspect All Instances' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InspectAllInstancesDesc #defaultString: 'Inspect all instances of the selected class' #catalogID: #browser) #inspectAllInstances #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InspectIt #defaultString: 'Inspect It' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InspectItDesc #defaultString: 'Evaluate the selected text and inspect the result' #catalogID: #browser) #inspectIt nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #InspectMethod #defaultString: 'Inspect Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #InspectMethodDesc #defaultString: 'Inspect the selected method' #catalogID: #browser) #inspectMethod #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalBrowseSelectedInstanceVariableReaders #defaultString: 'Local Browse Selected Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing the instance variable within the current scope of the browser' #catalogID: #browser) #browseInstVarReaders #isInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalBrowseSelectedInstanceVariableReferences #defaultString: 'Local Browse Selected Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReferencesDesc #defaultString: 'Browse all methods referencing the instance variable within the current scope of the browser' #catalogID: #browser) #browseInstVarRefs #isInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalBrowseSelectedInstanceVariableWriters #defaultString: 'Local Browse Selected Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying the instance variable within the current scope of the browser' #catalogID: #browser) #browseInstVarWriters #isInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableReaders #defaultString: 'Local Class Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing the class instance variable within the current scope of the browser' #catalogID: #browser) #classInstanceVariableReaders #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableReferences #defaultString: 'Local Class Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableReferencesDesc #defaultString: 'Browse all methods referencing the class instance variable within the current scope of the browser' #catalogID: #browser) #classInstanceVariableReferences #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableWriters #defaultString: 'Local Class Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalClassInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying the class instance variable within the current scope of the browser' #catalogID: #browser) #classInstanceVariableWriters #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalClassReferences #defaultString: 'Local Class References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalClassReferencesDesc #defaultString: 'Browse all methods referencing the selected class within the current scope of the browser' #catalogID: #browser) #classRefs #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalImplementors #defaultString: 'Local Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ImplementorsDesc #defaultString: 'Browse all implementors of the selected method' #catalogID: #browser) #browseLocalImplementors #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #LocalImplementorsActions #defaultString: 'Local Implementors Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ImplementorsActionsDesc #defaultString: 'Actions for Implementors' #catalogID: #browser) #localImplementorsActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReaders #defaultString: 'Local Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing the instance variable within the current scope of the browser' #catalogID: #browser) #instanceVariableReaders #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReferences #defaultString: 'Local Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableReferencesDesc #defaultString: 'Browse all methods referencing the instance variable within the current scope of the browser' #catalogID: #browser) #instanceVariableReferences #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalInstanceVariableWriters #defaultString: 'Local Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying the instance variable within the current scope of the browser' #catalogID: #browser) #instanceVariableWriters #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalSenders #defaultString: 'Local Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SendersDesc #defaultString: 'Browse all senders of the selected method' #catalogID: #browser) #browseLocalSenders #isSelectorSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #LocalSendersActions #defaultString: 'Local Senders Actions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SendersActionsDesc #defaultString: 'Actions for Senders' #catalogID: #browser) #localSendersActions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #LocalSharedVariableReferences #defaultString: 'Local Shared Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #LocalSharedVariableReferencesDesc #defaultString: 'Browse all references to the variable within the current scope of the browser' #catalogID: #browser) #localSharedVariableReferences #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MethodsWithStringsMatching #defaultString: 'Methods with Strings Matching' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MethodsWithStringsMatchingDesc #defaultString: 'Find all methods which have a literal string matching a string within the current scope of the browser' #catalogID: #browser) #browseStringMatches nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoreBuffers #defaultString: 'More Buffers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoreBuffersDesc #defaultString: 'Select a buffer' #catalogID: #browser) #selectBuffer nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveCompleteObjectToPackage #defaultString: 'Move Complete Object to Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveCompleteObjectToPackageDesc #defaultString: 'Move the complete object (methods and shared variables) to a new package' #catalogID: #browser) #moveCompleteObjectToPackage #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveCompleteObjectToParcel #defaultString: 'Move Complete Object to Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveCompleteObjectToParcelDesc #defaultString: 'Move the complete object (methods and shared variables) to a new parcel' #catalogID: #browser) #moveCompleteObjectToParcel #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveMethodToComponent #defaultString: 'Move Method to Component' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveMethodToComponentDesc #defaultString: 'Move the selected method to another object, replacing the selected method with a forwarder' #catalogID: #browser) #moveMethodToOtherObject #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveMethodToPackage #defaultString: 'Move Method to Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveMethodToPackageDesc #defaultString: 'Move selected methods to a package' #catalogID: #browser) #moveMethodToPackage #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveMethodToParcel #defaultString: 'Move Method to Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveMethodToParcelDesc #defaultString: 'Move the selected methods to a new parcel' #catalogID: #browser) #moveMethodToParcel #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveMethodToProtocol #defaultString: 'Move Method to Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveMethodToProtocolDesc #defaultString: 'Move the selected methods to a new protocol' #catalogID: #browser) #moveMethod #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveObjectDefinitionToPackage #defaultString: 'Move Object Definition to Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveObjectDefinitionToPackageDesc #defaultString: 'Move the object definitions to a new package' #catalogID: #browser) #moveObjectDefinitionToPackage #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveObjectDefinitionToParcel #defaultString: 'Move Object Definition to Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveObjectDefinitionToParcelDesc #defaultString: 'Move the selected object''s definitions to a new parcel' #catalogID: #browser) #moveObjectDefinitionToParcel #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveObjectToNameSpace #defaultString: 'Move Object to Name Space' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveObjectToNameSpaceDesc #defaultString: 'Move the selected objects to another name space' #catalogID: #browser) #moveObjectsToNameSpace #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveObjectToPackage #defaultString: 'Move Object to Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveObjectToPackageDesc #defaultString: 'Move the selected objects to a package' #catalogID: #browser) #moveObjectToPackage #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveObjectToParcel #defaultString: 'Move Object to Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveObjectToParcelDesc #defaultString: 'Move the selected object to a parcel' #catalogID: #browser) #moveObjectToParcel #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveProtocolToPackage #defaultString: 'Move Protocol to Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveProtocolToPackageDesc #defaultString: 'Move the selected protocols to a package' #catalogID: #browser) #moveProtocolToPackage #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveProtocolToParcel #defaultString: 'Move Protocol to Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveProtocolToParcelDesc #defaultString: 'Move the selected protcols to a parcel' #catalogID: #browser) #moveProtocolToParcel #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveSelectedTemporaryToInnermostScope #defaultString: 'Move Selected Temporary to Innermost Scope' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveSelectedTemporaryToInnermostScopeDesc #defaultString: 'Move the variable definition to its innermost scope' #catalogID: #browser) #bindTight #canPerformTemporaryVariableRefactorings #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #MoveSharedVariableToProtocol #defaultString: 'Move Shared Variable to Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #MoveSharedVariableToProtocolDesc #defaultString: 'Move the selected shared variables to another protocol' #catalogID: #browser) #moveSharedVariableToProtocol #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NameSpaceTemplate #defaultString: 'Name Space Template' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NameSpaceTemplateDesc #defaultString: 'Display a template for creating a name space' #catalogID: #browser) #showNameSpaceTemplate #canDefineClassesAndNameSpaces #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NavigateToClass #defaultString: 'Navigate to Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NavigateToClassDesc #defaultString: 'Change the selection to the highlighted class' #catalogID: #browser) #navigateToClass #hasClassSelectedAndIncludesClass #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NavigatorRemoveParamter #defaultString: 'Navigator Remove Paramter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NavigatorRemoveParamterDesc #defaultString: 'Remove an argument from the method if all implementors of the method do not use the argument' #catalogID: #browser) #removeParameter #canRemoveParameter #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #NavigatorTypeSpecifications #defaultString: 'Navigator Type Specifications' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NavigatorTypeSpecificationsDesc #defaultString: 'List of navigator types' #catalogID: #browser) #navigatorTypeSpecifications nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CmdNewClass #defaultString: 'New Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CmdNewClassDesc #defaultString: 'Create a new class' #catalogID: #browser) #newClass nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NewClassTemplate #defaultString: 'New Class Template' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NewClassTemplateDesc #defaultString: 'Display a template for defining a new class' #catalogID: #browser) #showClassTemplate #canDefineClassesAndNameSpaces #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NewNameSpace #defaultString: 'New Name Space' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NewNameSpaceDesc #defaultString: 'Create a new name space.' #catalogID: #browser) #newNameSpace nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #NewSharedVariable #defaultString: 'New Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #NewSharedVariableDesc #defaultString: 'Create a new shared variable' #catalogID: #browser) #newSharedVariable nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #OpenBrowserOnClass #defaultString: 'Open Browser on Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #OpenBrowserOnClassDesc #defaultString: 'Browse only the selected class' #catalogID: #browser) #openBrowserForClass #hasClassSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #OpenParcelProperties #defaultString: 'Open Parcel Properties' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #OpenParcelPropertiesDesc #defaultString: 'Open a parcel properties window on the selected parcel' #catalogID: #browser) #openParcelProperties #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelAddChanges #defaultString: 'Parcel Add Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelAddChangesDesc #defaultString: 'Add the items from the current change set to the selected parcel' #catalogID: #browser) #parcelAddChanges #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelAddFilein #defaultString: 'Parcel Add File-in' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelAddFileinDesc #defaultString: 'Load Smalltalk source, compiling it into the selected parcel' #catalogID: #browser) #parcelFileIn #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelAddToChanges #defaultString: 'Parcel Add to Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelAddToChangesDesc #defaultString: 'Add the contents of the selected parcels to the change set' #catalogID: #browser) #parcelAddToChanges #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseChangedMethods #defaultString: 'Parcel Browse Changed Methods' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseChangedMethodsDesc #defaultString: 'Browse all methods in the parcel that have changed since the parcel was saved' #catalogID: #browser) #browseChangedMethods #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseExclusiveMethodImports #defaultString: 'Parcel Browse Exclusive Method Imports' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseExclusiveMethodImportsDesc #defaultString: 'Browse all methods not defined in this parcel, but are only used within it' #catalogID: #browser) #browseExclusiveMethodImports #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseExtensionMethods #defaultString: 'Parcel Browse Extension Methods' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseExtensionMethodsDesc #defaultString: 'Browse extension methods in the parcel' #catalogID: #browser) #browseExtensionMethods #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseExtensionsOfDefinedClasses #defaultString: 'Parcel Browse Extensions of Defined Classes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseExtensionsOfDefinedClassesDesc #defaultString: 'Browse extensions of the parcel''s defined classes' #catalogID: #browser) #browseExtensionsOfDefinedClasses #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseReferencesToDefinedClasses #defaultString: 'Parcel Browse References to Defined Classes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseReferencesToDefinedClassesDesc #defaultString: 'Browse references to all classes defined in this parcel' #catalogID: #browser) #browseReferencesToDefinedClasses #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseSubclassesOfDefinedClasses #defaultString: 'Parcel Browse Subclasses of Defined Classes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseSubclassesOfDefinedClassesDesc #defaultString: 'Browse all subclasses in other parcels of this parcel''s defined classes' #catalogID: #browser) #browseSubclassesOfDefinedClasses #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelBrowseUnparceledMethodsOnDefinedClasses #defaultString: 'Parcel Browse Unparceled Methods on Defined Classes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelBrowseUnparceledMethodsOnDefinedClassesDesc #defaultString: 'Browse all unparceled methods whose class is defined in the parcel' #catalogID: #browser) #browseUnparceledMethodsOnDefinedClasses #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelCreate #defaultString: 'Parcel Create' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelCreateDesc #defaultString: 'Create a new parcel' #catalogID: #browser) #parcelCreateParcel nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelDiscard #defaultString: 'Parcel Discard' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelDiscardDesc #defaultString: 'Delete the parcel without unloading its source' #catalogID: #browser) #parcelDiscardParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelEmpty #defaultString: 'Parcel Empty' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelEmptyDesc #defaultString: 'Empty the selected parcel without removing its source from the image' #catalogID: #browser) #parcelEmptyParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelFileout #defaultString: 'Parcel File-out' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelFileoutDesc #defaultString: 'Save the selected parcel as a Smalltalk source file-out' #catalogID: #browser) #parcelFileoutParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelLoad #defaultString: 'Parcel Load' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelLoadDesc #defaultString: 'Load a parcel' #catalogID: #browser) #parcelLoadParcel nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelMakeRemoveScript #defaultString: 'Parcel Make Remove Script' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelMakeRemoveScriptDesc #defaultString: 'Create a script to remove the parcel' #catalogID: #browser) #parcelCreateRemoveScript #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelOverrideMethod #defaultString: 'Parcel Override Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelOverrideMethodDesc #defaultString: 'Create overrides for the selected methods and shared variables' #catalogID: #browser) #overrideDefinitionsInParcel #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelOverrideObject #defaultString: 'Parcel Override Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelOverrideObjectDesc #defaultString: 'Create overrides of the selected objects.' #catalogID: #browser) #overrideObjectInParcel #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelRemove #defaultString: 'Parcel Remove' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelRemoveDesc #defaultString: 'Unload and remove the parcel' #catalogID: #browser) #parcelRemoveParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelRemoveChanges #defaultString: 'Parcel Remove Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelRemoveChangesDesc #defaultString: 'Remove the items in the change set contained in the selected parcel' #catalogID: #browser) #parcelRemoveChanges #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelRemoveFromChanges #defaultString: 'Parcel Remove from Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelRemoveFromChangesDesc #defaultString: 'Remove the selected parcel''s contents from the change set' #catalogID: #browser) #parcelRemoveFromChanges #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelRename #defaultString: 'Parcel Rename' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelRenameDesc #defaultString: 'Rename the selected parcel' #catalogID: #browser) #parcelRenameParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelSave #defaultString: 'Parcel Save' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelSaveDesc #defaultString: 'Save the selected parcel' #catalogID: #browser) #parcelSaveParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ParcelUnload #defaultString: 'Parcel Unload' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ParcelUnloadDesc #defaultString: 'Unload the selected parcel' #catalogID: #browser) #parcelUnloadParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PasteSelection #defaultString: 'Paste Selection' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #Paste #defaultString: 'Paste' #catalogID: #browser) #paste #isTextTool #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PrintIt #defaultString: 'Print It' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PrintItDesc #defaultString: 'Evaluate the selected text and print the result' #catalogID: #browser) #printIt nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ProtectClassInstanceVariable #defaultString: 'Protect Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ProtectClassInstanceVariableDesc #defaultString: 'Convert from indirect to direct class instance variable access, removing all accessing methods that are no longer used' #catalogID: #browser) #protectClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ProtectInstanceVariable #defaultString: 'Protect Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ProtectInstanceVariableDesc #defaultString: 'Convert from indirect to direct instance variable access, removing all accessing methods that are no longer used' #catalogID: #browser) #protectInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ProtectSelectedInstanceVariable #defaultString: 'Protect Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ProtectSelectedInstanceVariableDesc #defaultString: 'Convert abstract variable references to direct references for the selected instance variable' #catalogID: #browser) #protectInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushDownClassInstanceVariable #defaultString: 'Push Down Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushDownClassInstanceVariableDesc #defaultString: 'Move the class instance variable''s definition to the subclasses that reference it' #catalogID: #browser) #pushDownClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushDownInstanceVariable #defaultString: 'Push Down Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushDownInstanceVariableDesc #defaultString: 'Move the instance variable''s definition to the subclasses that reference it' #catalogID: #browser) #pushDownInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushDownMethod #defaultString: 'Push Down Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushDownMethodDesc #defaultString: 'Move the selected method to the selected class'' subclasses' #catalogID: #browser) #pushDownSelector #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushDownSelectedInstanceVariable #defaultString: 'Push Down Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushDownSelectedInstanceVariableDesc #defaultString: 'Move the selected instance variable definition to all subclasses' #catalogID: #browser) #pushDownInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushUpClassInstanceVariable #defaultString: 'Push Up Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushUpClassInstanceVariableDesc #defaultString: 'Move the class instance variable definition to the selected class'' superclass' #catalogID: #browser) #pushUpClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushUpInstanceVariable #defaultString: 'Push Up Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushUpInstanceVariableDesc #defaultString: 'Move the instance variable definition to the selected class'' superclass' #catalogID: #browser) #pushUpInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushUpMethod #defaultString: 'Push Up Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushUpMethodDesc #defaultString: 'Move the selected method to the selected class'' superclass' #catalogID: #browser) #pushUpSelector #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #PushUpSelectedInstanceVariable #defaultString: 'Push Up Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #PushUpSelectedInstanceVariableDesc #defaultString: 'Move the selected instance variable to the superclass' #catalogID: #browser) #pushUpInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #Redo #defaultString: 'Redo' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RedoDesc #defaultString: 'Redo the last undo operation' #catalogID: #browser) #redoOperation #hasRedoableOperations #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RefactoringBrowserHelp #defaultString: 'Refactoring Browser Help' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #Help #defaultString: 'Help' #catalogID: #browser) #help nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ReferencesToClassOrGlobal #defaultString: 'References to Class or Global' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReferencesToClassOrGlobalDesc #defaultString: 'Find references to a class or shared variable within the current scope of the browser' #catalogID: #browser) #browseGlobals nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ReferencesToSymbol #defaultString: 'References to Symbol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReferencesToSymbolDesc #defaultString: 'Find references to a symbol within the current scope of the browser' #catalogID: #browser) #browseSymbols nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ReinitializeBindings #defaultString: 'Reinitialize Bindings' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReinitializeBindingsDesc #defaultString: 'Reinitialize all selected bindings' #catalogID: #browser) #initializeBindings #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveActionSpecification #defaultString: 'Remove Action Specification' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveActionSpecificationDesc #defaultString: 'Remove an action specification' #catalogID: #browser) #removeAction #hasActionSpecificationSelected #yourself) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveBuffer #defaultString: 'Remove Buffer' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveBufferDesc #defaultString: 'Remove the current buffer' #catalogID: #browser) #removeBuffer #hasMultipleCodeTools #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveClassInstanceVariable #defaultString: 'Remove Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveClassInstanceVariableDesc #defaultString: 'Remove a class instance variable if it is not referenced' #catalogID: #browser) #removeClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveInstanceVariable #defaultString: 'Remove Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveInstanceVariableDesc #defaultString: 'Remove an instance variable if it is not referenced' #catalogID: #browser) #removeInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveMethod #defaultString: 'Remove Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveMethodDesc #defaultString: 'Remove the selected methods' #catalogID: #browser) #removeMethod #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveMethodFromList #defaultString: 'Remove Method From List' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveMethodFromListDesc #defaultString: 'Removes the selected methods and shared variables from the list of items.' #catalogID: #browser) #removeFromList #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveObject #defaultString: 'Remove Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveObjectDesc #defaultString: 'Remove the selected shared variables, name spaces, or classes, including their subclasses' #catalogID: #browser) #removeObject #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveOverrideMethod #defaultString: 'Remove Override Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveOverrideMethodDesc #defaultString: 'Remove a method override' #catalogID: #browser) #removeMethodOrStaticOverride #isMethodOverridden #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveOverrideObject #defaultString: 'Remove Override Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveOverrideObjectDesc #defaultString: 'Remove an object override from the system' #catalogID: #browser) #removeObjectOverride #isClassOverridden #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveParameter #defaultString: 'Remove Parameter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveParameterDesc #defaultString: 'Remove the selected argument from the method if all implementors of the method do not use the argument' #catalogID: #browser) #removeParameter #hasMethodArgumentSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveProtocol #defaultString: 'Remove Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveProtocolDesc #defaultString: 'Remove the selected protocol and all of its methods' #catalogID: #browser) #removeProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveSelectedInstanceVariable #defaultString: 'Remove Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveSelectedInstanceVariableDesc #defaultString: 'Remove the selected instance variable if there are no references to it' #catalogID: #browser) #removeInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveSelectedParameter #defaultString: 'Remove Selected Parameter' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveSelectedParameterDesc #defaultString: 'Remove the selected parameter from the method (if it is unused), modifying all callers' #catalogID: #browser) #removeParameter #canPerformParameterRefactorings #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveSharedVariable #defaultString: 'Remove Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveSharedVariableDesc #defaultString: 'Remove the selected variables whether or not there are references to them' #catalogID: #browser) #removeSharedVariable #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RemoveStatic #defaultString: 'Remove Static' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RemoveStaticDesc #defaultString: 'Remove the selected shared variable' #catalogID: #browser) #removeStatic #hasStaticSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameClassInstanceVariable #defaultString: 'Rename Class Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameClassInstanceVariableDesc #defaultString: 'Rename a class instance variable and all its references' #catalogID: #browser) #renameClassInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameInstanceVariable #defaultString: 'Rename Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameInstanceVariableDesc #defaultString: 'Rename an instance variable and all its references' #catalogID: #browser) #renameInstanceVariable #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameMethod #defaultString: 'Rename Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameMethodDesc #defaultString: 'Rename a method and all of its senders' #catalogID: #browser) #renameMethod #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameObject #defaultString: 'Rename Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameObjectDesc #defaultString: 'Rename a class, name space, or shared variable and all references to it' #catalogID: #browser) #renameObject #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameProtocol #defaultString: 'Rename Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameProtocolDesc #defaultString: 'Rename the selected protocol' #catalogID: #browser) #renameProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameSelectedInstanceVariable #defaultString: 'Rename Selected Instance Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameSelectedInstanceVariableDesc #defaultString: 'Rename the selected instance variable' #catalogID: #browser) #renameInstanceVariable #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameSelectedTemporaryVariable #defaultString: 'Rename Selected Temporary Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameTemporaryVariableDesc #defaultString: 'Rename the selected temporary variable and all references to it' #catalogID: #browser) #renameTemporary #canPerformTemporaryVariableRefactorings #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameSharedVariable #defaultString: 'Rename Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameSharedVariableDesc #defaultString: 'Rename the selected shared variable and all references to it' #catalogID: #browser) #renameSharedVariable #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RenameTemporaryVariable #defaultString: 'Rename Temporary Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RenameTemporaryVariableDesc #defaultString: 'Rename the selected temporary variable and all references to it' #catalogID: #browser) #renameTemporary #hasTemporarySelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ReplaceText #defaultString: 'Replace Text' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ReplaceTextDesc #defaultString: 'Search and replace text' #catalogID: #browser) #replace #isTextTool #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RestoreOverrideMethod #defaultString: 'Restore Override Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RestoreOverrideMethodDesc #defaultString: 'Restore an overridden method' #catalogID: #browser) #restoreMethodOrStaticOverride #isMethodOverridden #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RestoreOverrideObject #defaultString: 'Restore Override Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RestoreOverrideObjectDesc #defaultString: 'Restore an object override from the system' #catalogID: #browser) #restoreObjectOverride #isClassOverridden #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RestoreSelectedOverride #defaultString: 'Restore Selected Override' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RestoreSelectedOverrideDesc #defaultString: 'Restores the selected override.' #catalogID: #browser) #restoreOverride #isOverrideSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RewriterReplace #defaultString: 'Rewriter Replace' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RewriterReplaceDesc #defaultString: 'Replace using parse trees.' #catalogID: #browser) #replace nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #RewriterSearch #defaultString: 'Rewriter Search' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #RewriterSearchDesc #defaultString: 'Search for a matching parse tree.' #catalogID: #browser) #find nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SafeRemoveMethod #defaultString: 'Safe Remove Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SafeRemoveMethodDesc #defaultString: 'Remove the selected methods if there are no references to them' #catalogID: #browser) #removeMethodSafe #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SafeRemoveObject #defaultString: 'Safe Remove Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SafeRemoveObjectDesc #defaultString: 'Remove the selected classes only if there are no references to them' #catalogID: #browser) #removeObjectsSafe #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SafeRemoveSharedVariable #defaultString: 'Safe Remove Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SafeRemoveSharedVariableDesc #defaultString: 'Remove the selected variables if there are no references to them' #catalogID: #browser) #removeSharedVariableSafe #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedGlobalInstanceVariableReaders #defaultString: 'Selected Global Instance Variable Readers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedInstanceVariableReadersDesc #defaultString: 'Browse all methods accessing the selected instance variable' #catalogID: #browser) #browseInstVarReaders #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedGlobalInstanceVariableReferences #defaultString: 'Selected Global Instance Variable References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedInstanceVariableReferencesDesc #defaultString: 'Browse all methods referring to the selected instance variable' #catalogID: #browser) #browseInstVarRefs #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedGlobalInstanceVariableWriters #defaultString: 'Selected Global Instance Variable Writers' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedInstanceVariableWritersDesc #defaultString: 'Browse all methods modifying the selected instance variable' #catalogID: #browser) #browseInstVarWriters #hasInstanceVariableSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedMessageGlobalImplementors #defaultString: 'Selected Message Global Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedMessageImplementorsDesc #defaultString: 'Browse all implementors of the selected message' #catalogID: #browser) #browseImplementors #hasMessageSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedMessageGlobalSenders #defaultString: 'Selected Message Global Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedMessageSendersDesc #defaultString: 'Browse all senders of the selected message' #catalogID: #browser) #browseSenders #hasMessageSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedMessageImplementors #defaultString: 'Selected Message Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedMessageImplementorsDesc #defaultString: 'Browse all implementors of the selected message' #catalogID: #browser) #browseImplementors #hasMessageNodeSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SelectedMessageReferences #defaultString: 'Selected Message References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SelectedMessageSendersDesc #defaultString: 'Browse all senders of the selected message' #catalogID: #browser) #browseSenders #hasMessageNodeSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SetDefaultNameSpace #defaultString: 'Set Default Name Space' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SetDefaultNameSpaceDesc #defaultString: 'Set the default name space to be displayed when a browser is opened' #catalogID: #browser) #setDefaultNameSpace nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SharedVariableTemplate #defaultString: 'Shared Variable Template' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SharedVariableTemplateDesc #defaultString: 'Display a template for creating a shared variable' #catalogID: #browser) #showSharedVariableTemplate nil #activeTool) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #ShowOnlyFiltered #defaultString: 'Show Only Filtered' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ShowOnlyFilteredDesc #defaultString: 'Show only methods and shared variables within the selected Parcels/Packages' #catalogID: #browser) #showOnlyFilteredSpecifications nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ShowOverrideDiffs #defaultString: 'Show Override Diffs' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ShowOverrideDiffsDesc #defaultString: 'Show source differences between the override and the image' #catalogID: #browser) #showOverrideDiff #isOverrideSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SmalllintClearFilters #defaultString: 'Smalllint Clear Filters' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintClearFiltersDesc #defaultString: 'Clear Smalllint filter list.' #catalogID: #browser) #clearFilters nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SmalllintFilterClass #defaultString: 'Smalllint Filter Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintFilterClassDesc #defaultString: 'Add the selected class to the Smalllint rules ignore list' #catalogID: #browser) #addFilterForClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SmalllintFilterSelector #defaultString: 'Smalllint Filter Selector' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintFilterSelectorDesc #defaultString: 'Add the selected methods to the Smalllint rules ignore list' #catalogID: #browser) #addFilterForSelector #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SmalllintLoadFilters #defaultString: 'Smalllint Load Filters' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintLoadFiltersDesc #defaultString: 'Load Smalllint filters from a file.' #catalogID: #browser) #loadFilters nil #activeTool) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #SmalllintRuleTypeList #defaultString: 'Smalllint Rule Type List' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintRuleTypeListDesc #defaultString: '' #catalogID: #browser) #ruleActions nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SmalllintSaveFilters #defaultString: 'Smalllint Save Filters' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SmalllintSaveFiltersDesc #defaultString: 'Save Smalllint''s filters to a file.' #catalogID: #browser) #saveFilters nil #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnBrowser #defaultString: 'Spawn Browser' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnBrowserDesc #defaultString: 'Open a new browser' #catalogID: #browser) #spawnBrowser nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnClass #defaultString: 'Spawn Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnClassDesc #defaultString: 'Browse only the selected classes' #catalogID: #browser) #spawnClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnClassHierarchy #defaultString: 'Spawn Class Hierarchy' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnClassHierarchyDesc #defaultString: 'Browse only the selected class and its hierarchy' #catalogID: #browser) #spawnHierarchy #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnMethod #defaultString: 'Spawn Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnMethodDesc #defaultString: 'Browse only the selected methods' #catalogID: #browser) #spawnMethod #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnParcel #defaultString: 'Spawn Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnParcelDesc #defaultString: 'Browse the selected parcels' #catalogID: #browser) #spawnParcel #isParcelSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnProtocol #defaultString: 'Spawn Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnProtocolDesc #defaultString: 'Browse the selected protocols' #catalogID: #browser) #spawnProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #SpawnPundle #defaultString: 'Spawn Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #SpawnPundleDesc #defaultString: 'Browse the selected pundles' #catalogID: #browser) #spawnPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StaticReferences #defaultString: 'Static References' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StaticReferencesDesc #defaultString: 'Browse all references to the selected shared variable' #catalogID: #browser) #staticReferences #hasStaticSelected #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CmdStoreAddBundle #defaultString: 'Store Add Bundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CmdStoreAddBundleDesc #defaultString: 'Create a new bundle' #catalogID: #browser) #storeCreateBundle nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #CmdStoreAddPackage #defaultString: 'Store Add Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #CmdStoreAddPackageDesc #defaultString: 'Create a new package' #catalogID: #browser) #storeCreatePackage nil #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #StoreAllDatabasesBrowseChanges #defaultString: 'Store All Databases Browse Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreAllDatabasesBrowseChangesDesc #defaultString: '' #catalogID: #browser) #storeAllDbsBrowseChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #StoreAllDatabasesChangeList #defaultString: 'Store All Databases Change List' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreAllDatabasesChangeListDesc #defaultString: '' #catalogID: #browser) #storeAllDbsChangeListOnChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #StoreAllDatabasesFileoutChanges #defaultString: 'Store All Databases Fileout Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreAllDatabasesFileoutChangesDesc #defaultString: '' #catalogID: #browser) #storeAllDbsFileoutChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #StoreAllDatabasesInspectChanges #defaultString: 'Store All Databases Inspect Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreAllDatabasesInspectChangesDesc #defaultString: '' #catalogID: #browser) #storeAllDbsInspectChangeSet #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowseClassVersions #defaultString: 'Store Browse Class Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowseClassVersionsDesc #defaultString: 'Browse all versions of the selected class in the repository' #catalogID: #browser) #storeBrowseClassVersions #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowseMethodChanges #defaultString: 'Store Browse Method Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowseMethodChangesDesc #defaultString: 'Browse the methods in the repository that have been changed' #catalogID: #browser) #storeBrowseChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowseMethodVersions #defaultString: 'Store Browse Method Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowseMethodVersionsDesc #defaultString: 'Browse the methods that have been changed' #catalogID: #browser) #storeBrowseMethodVersions #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowsePundleVersions #defaultString: 'Store Browse Pundle Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowsePundleVersionsDesc #defaultString: 'Browse all versions of the selected method in the repository' #catalogID: #browser) #storeBrowsePundleVersions #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowseRemovedMethods #defaultString: 'Store Browse Removed Methods' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowseRemovedMethodsDesc #defaultString: 'Browse all methods stored in the repository for this class that are not loaded' #catalogID: #browser) #storeBrowseRemovedMethods #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreBrowseSharedVariableVersions #defaultString: 'Store Browse Shared Variable Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreBrowseSharedVariableVersionsDesc #defaultString: 'Browse all versions of the shared variable stored in the repository' #catalogID: #browser) #storeBrowseSharedVariableVersions #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreChangeListOnChanges #defaultString: 'Store Change List on Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreChangeListOnChangesDesc #defaultString: 'Open a change list for the selected package' #catalogID: #browser) #storeChangeListOnChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreCompareClassVersion #defaultString: 'Store Compare Class Version' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreCompareClassVersionDesc #defaultString: 'Browse differences between the loaded class and a version in the repository' #catalogID: #browser) #storeCompareWithVersion #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreCompareMethodVersions #defaultString: 'Store Compare Method Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreCompareMethodVersionsDesc #defaultString: 'Browse differences between the selected method and another version of it' #catalogID: #browser) #storeCompareMethodWithVersion #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreComparePundleVersions #defaultString: 'Store Compare Pundle Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreComparePundleVersionsDesc #defaultString: 'Browse differences between the selected item and an item in the repository' #catalogID: #browser) #storeComparePundleVersion #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreComparePundleWithParent #defaultString: 'Store Compare Pundle with Parent' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreComparePundleWithParentDesc #defaultString: 'Browse differences between the selected item and its parent' #catalogID: #browser) #storeCompareWithParent #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreCompareSharedVariableVersions #defaultString: 'Store Compare Shared Variable Versions' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreCompareSharedVariableVersionsDesc #defaultString: 'Browse differences between the selected shared variable and another version of it' #catalogID: #browser) #storeCompareSharedVariableWithVersion #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreEditBundle #defaultString: 'Store Edit Bundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreEditBundleDesc #defaultString: 'Edit the bundle''s specification' #catalogID: #browser) #storeEditBundleSpecification #isBundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreExtendClassInPackage #defaultString: 'Store Extend Class in Package' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreExtendClassInPackageDesc #defaultString: 'Create an extension of a class or name space in a new package.' #catalogID: #browser) #extendClassInPackage #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreFilein #defaultString: 'Store File-in' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreFileinDesc #defaultString: 'Load Smalltalk source, compiling it into the selected package' #catalogID: #browser) #storeFileinPackage #isPackageSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreFileoutPundle #defaultString: 'Store File-out Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreFileoutPundleDesc #defaultString: 'Save the Smalltalk source of the selected item as a file-out' #catalogID: #browser) #storeFileoutPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreFileoutPundleChanges #defaultString: 'Store File-out Pundle Changes' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreFileoutPundleChangesDesc #defaultString: 'Save the Smalltalk source for the changes in the selected item' #catalogID: #browser) #storeFileoutPundleChanges #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreFileoutPundleDifferences #defaultString: 'Store File-out Pundle Differences' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreFileoutPundleDifferencesDesc #defaultString: 'Save the Smalltalk source for the differences between selected item versions' #catalogID: #browser) #storeFileoutPundleDifferences #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreInspectChangeSet #defaultString: 'Store Inspect Change Set' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreInspectChangeSetDesc #defaultString: 'Inspect the change set of the selected packages' #catalogID: #browser) #storeInspectChangeSet #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreLoadAnotherPundle #defaultString: 'Store Load Another Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreLoadAnotherPundleDesc #defaultString: 'Load a package or bundle from the repository' #catalogID: #browser) #loadAnotherPundle nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreLoadPundle #defaultString: 'Store Load Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreLoadPundleDesc #defaultString: 'Load another version of the selected item' #catalogID: #browser) #storeLoadPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreMakeCurrent #defaultString: 'Store Make Current' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreMakeCurrentDesc #defaultString: 'Make the selected package the default package for new source' #catalogID: #browser) #storeMakeCurrent #isPackageSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreNewClassExtension #defaultString: 'Store New Class Extension' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreNewClassExtensionDesc #defaultString: 'Create a new class extension in the selected package' #catalogID: #browser) #storeNewClassExtension #isPackageSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreOverrideMethod #defaultString: 'Store Override Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreOverrideMethodDesc #defaultString: 'Create an override for the selected method(s) or shared variable(s)' #catalogID: #browser) #overrideDefinitionsInPackage #isDefinitionSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreOverrideObject #defaultString: 'Store Override Object' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreOverrideObjectDesc #defaultString: 'Create an override for the selected object(s)' #catalogID: #browser) #overrideObjectInPackage #isBindingSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StorePublish #defaultString: 'Store Publish' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StorePublishDesc #defaultString: 'Publish the selected item to the repository' #catalogID: #browser) #storePublishPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StorePublishParcel #defaultString: 'Store Publish Parcel' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StorePublishParcelDesc #defaultString: 'Publish the selected item as a parcel' #catalogID: #browser) #storePublishAsParcel #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StorePundleProperties #defaultString: 'Store Pundle Properties' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StorePundlePropertiesDesc #defaultString: 'Open the selected component''s properties dialog' #catalogID: #browser) #storePundleProperties #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreReconcilePundle #defaultString: 'Store Reconcile Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreReconcilePundleDesc #defaultString: 'Reconcile the selected package with the database' #catalogID: #browser) #storeReconcilePundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreRenamePundle #defaultString: 'Store Rename Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreRenamePundleDesc #defaultString: 'Rename the selected item' #catalogID: #browser) #storeRenamePundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreRevertMethod #defaultString: 'Store Revert Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreRevertMethodDesc #defaultString: 'Load the version of the method stored in the repository for this package version' #catalogID: #browser) #storeRevertMethod #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreRevertSharedVariable #defaultString: 'Store Revert Shared Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreRevertSharedVariableDesc #defaultString: 'Load the version of the shared variable stored in the repository for this package version' #catalogID: #browser) #storeRevertSharedVariable #isSharedVariableSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #StoreUnloadPundle #defaultString: 'Store Unload Pundle' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #StoreUnloadPundleDesc #defaultString: 'Unload the selected item' #catalogID: #browser) #storeUnloadPundle #isPundleSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #ToggleToolbar #defaultString: 'Toggle Toolbar' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ToggleToolbarDesc #defaultString: 'Toggle the toolbar on all browsers' #catalogID: #browser) #toggleToolbar nil #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllImplementors #defaultString: 'Uncheck All Implementors' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllImplementorsDesc #defaultString: 'Remove all implementors of the selected method from the item list' #catalogID: #browser) #uncheckImplementors #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllMethods #defaultString: 'Uncheck All Methods' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllMethodsDesc #defaultString: 'Remove all methods matching a pattern from the item list' #catalogID: #browser) #uncheckAllSelectors #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllProtocols #defaultString: 'Uncheck All Protocols' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllProtocolsDesc #defaultString: 'Remove all protocols matching a pattern from the item list' #catalogID: #browser) #uncheckAllProtocols #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllSenders #defaultString: 'Uncheck All Senders' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllSendersDesc #defaultString: 'Remove all senders of the selected method from the item list' #catalogID: #browser) #uncheckSenders #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllSubclasses #defaultString: 'Uncheck All Subclasses' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllSubclassesDesc #defaultString: 'Remove all the class'' subclasses from the item list' #catalogID: #browser) #uncheckSubclasses #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckAllSuperclasses #defaultString: 'Uncheck All Superclasses' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckAllSuperclassesDesc #defaultString: 'Remove all the class'' superclasses from the item list' #catalogID: #browser) #uncheckSuperclasses #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckClass #defaultString: 'Uncheck Class' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckClassDesc #defaultString: 'Remove the selected class from the item list' #catalogID: #browser) #uncheckClass #isClassSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckMethod #defaultString: 'Uncheck Method' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckMethodDesc #defaultString: 'Remove the selected methods from the item list' #catalogID: #browser) #uncheckSelector #isSelectorSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UncheckProtocol #defaultString: 'Uncheck Protocol' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UncheckProtocolDesc #defaultString: 'Remove the selected protocols from the item list' #catalogID: #browser) #uncheckProtocol #isProtocolSelected #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #Undo #defaultString: 'Undo' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UndoDesc #defaultString: 'Undo the last action' #catalogID: #browser) #undoOperation #hasUndoableOperations #browser) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UndoTyping #defaultString: 'Undo Typing' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #Undo #defaultString: 'Undo' #catalogID: #browser) #undo #isTextTool #activeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UpdateCodeToolDisplay #defaultString: 'Update Code Tool Display' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UpdateCodeToolDisplayDesc #defaultString: 'Update the display' #catalogID: #browser) #updateDisplay nil #codeTool) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #UpdateNavigator #defaultString: 'Update Navigator' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #UpdateNavigatorDesc #defaultString: 'Refresh the navigator from the current image' #catalogID: #browser) #updateNavigator nil #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #VariableNavigatorPullUpVariable #defaultString: 'Variable Navigator Pull Up Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #VariableNavigatorPullUpVariableDesc #defaultString: 'Move the selected variable into the superclass' #catalogID: #browser) #pullUpSelectedInstanceVariable #canPerformPullUpVariable #navigator) #(#{Refactory.Browser.RBCommand} #(#{Kernel.UserMessage} #key: #VariableNavigatorRemoveVariable #defaultString: 'Variable Navigator Remove Variable' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #VariableNavigatorRemoveVariableDesc #defaultString: 'Remove the selected variable if there are no references to it' #catalogID: #browser) #removeSelectedInstanceVariable #canPerformRemoveVariable #navigator) #(#{Refactory.Browser.RBDynamicMultiCommand} #(#{Kernel.UserMessage} #key: #ZoomSpecifications #defaultString: 'Zoom Specifications' #catalogID: #browser) #(#{Kernel.UserMessage} #key: #ZoomSpecificationsDesc #defaultString: 'The Zoom menu for the RB.' #catalogID: #browser) #zoomMenuSpecifications nil #browser))
initializeActions self initializeWithActions: self actionArray
initializeWithActions: specArray Actions := Dictionary new. specArray do: [:each | | action | action := each first value decodeFromLiteralArray: each. self addAction: action]
</methods> <methods> Refactory.Browser.RBCommand class <category>private</category>
decodeStringOrArray: aStringOrArray ^aStringOrArray isString ifTrue: [aStringOrArray] ifFalse: [aStringOrArray first value decodeFromLiteralArray: aStringOrArray]
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>initialize-release</category>
initialize super initialize. listSelector := #fillInListFor:
listSelector: aSymbol listSelector := aSymbol. self protocolHolder "Initialize the protocolHolder"
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>changing</category>
changed self fillInProtocolForSelection. super changed
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>private</category>
displayTextFor: aMethodDefinition | text | text := aMethodDefinition simpleDisplayText. aMethodDefinition isOverridden ifTrue: [text emphasizeAllWith: (Array with: #color -> self overriddenColor)]. ^text
fillInListWith: aNavigatorState | newList | self flushCache. newList := self perform: listSelector with: aNavigatorState. self list == newList ifFalse: [self updateListWith: newList]
fillInProtocolForSelection | protocols firstProtocol | protocolHolder isNil ifTrue: [^self]. protocols := self protocolsForSelection. firstProtocol := protocols detect: [:each | true] ifNone: [nil]. self protocolHolder value: firstProtocol
flushCache overriddenCache := nil
iconFor: aMethodDefinition | method icon isOverridden | aMethodDefinition isForSharedVariable ifTrue: [^ListIconLibrary visualFor: #variable ifAbsent: [nil]]. method := aMethodDefinition method. method isNil ifTrue: [^nil]. method resourceType notNil ifTrue: [icon := ListIconLibrary visualFor: method resourceType ifAbsent: []]. icon notNil ifTrue: [^icon]. isOverridden := self isMethodOverridden: aMethodDefinition. (self isOverridingMethod: aMethodDefinition) ifTrue: [^isOverridden ifTrue: [ListIconLibrary visualFor: #upDownArrow] ifFalse: [ListIconLibrary visualFor: #upArrow]] ifFalse: [isOverridden ifTrue: [^ListIconLibrary visualFor: #downArrow]]. ^nil
isMethodOverridden: aMethodDefinition ^(self overriddenCacheFor: aMethodDefinition implementingClass) includes: aMethodDefinition selector
isOverridingMethod: aMethodDefinition aMethodDefinition implementingClass superclass isNil ifTrue: [^false]. ^aMethodDefinition implementingClass superclass canUnderstand: aMethodDefinition selector
overriddenCacheFor: aClass overriddenCache isNil ifTrue: [overriddenCache := Dictionary new]. ^overriddenCache at: aClass ifAbsentPut: [| set | set := IdentitySet new. aClass allSubclassesDo: [:each | set addAll: each selectors]. set]
protocolsForSelection ^(self selections collect: [:each | each protocol]) asSet asArray
select: aCollection in: aSelectionInList super select: aCollection in: aSelectionInList. self fillInProtocolForSelection
showWarningIconForMethod: aMethodDefinition "This method must be fast. It is called each time a method is displayed, so its speed directly affects the speed of list display. It should not do anything more complex than checking a few values. Absolutely no lengthy computations!" ^false
showWarningIconForSharedVariable: aMethodDefinition "This method must be fast. It is called each time a shared variable is displayed, so its speed directly affects the speed of list display. It should not do anything more complex than checking a few values. Absolutely no lengthy computations!" ^false
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>aspects</category>
protocolHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^protocolHolder isNil ifTrue: [protocolHolder := String new asValue] ifFalse: [protocolHolder]
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #selectorMenu
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>updating widgets</category>
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListWith: aNavigatorState. self select: initialSelections
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState (aNavigatorState protocols isEmpty and: [protocolHolder notNil]) ifTrue: [aNavigatorState protocol: self protocolHolder value]. aNavigatorState allDefinitions: self list asArray. aNavigatorState definitions: self selections
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>updating</category>
addItemChange self mergeIntoList: ((self perform: listSelector with: navigator state) asSortedCollection: self sortBlock)
changeSetUpdate: anAspectSymbol with: aParameter self flushCache. anAspectSymbol == #removeSelector:class: ifTrue: [self removeMethodChange: aParameter]. (#(#removeBinding:in: #relocateBinding:from:to:) includes: anAspectSymbol) ifTrue: [self removeBindingChange: aParameter]. (#(#addBinding:in: #addBinding:in:attributes: #addSelector:class: #addSelector:class:attributes:) includes: anAspectSymbol) ifTrue: [self addItemChange]
removeBindingChange: aParameter self list removeAllSuchThat: [:each | each isForSharedVariable and: [each classOrNameSpace == (aParameter at: 2) and: [each variableName == (aParameter at: 1) key]]]
removeMethodChange: aParameter self list removeAllSuchThat: [:each | each isForSharedVariable not and: [each implementingClass == (aParameter at: 2) and: [each selector == (aParameter at: 1)]]]
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart <category>testing</category>
showIcons ^true
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart class <category>accessing</category>
showAllItemsWhenNothingSelected ^ShowAllItemsWhenNothingSelected
showAllItemsWhenNothingSelected: aBoolean ShowAllItemsWhenNothingSelected := aBoolean
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.SharedVariableNavigatorPart <category>updating widgets</category>
newSelectionsBasedOn: oldSelections | newSelections | newSelections := OrderedCollection new: oldSelections size. oldSelections do: [:each | | new | new := nil. new := self list detect: [:def | def variableName = each variableName] ifNone: [nil]. new notNil ifTrue: [newSelections add: new]]. ^newSelections
selectState: aNavigatorState self fillInListWith: aNavigatorState. self select: aNavigatorState definitions
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListWith: aNavigatorState. self select: (self newSelectionsBasedOn: initialSelections). aNavigatorState definitions: self selections
</methods> <methods> Refactory.Browser.SharedVariableNavigatorPart <category>private</category>
allSharedVariablesIn: aNavigatorState | sharedVariables nameSpaces nameSpace | nameSpaces := aNavigatorState classesAndNameSpaces. nameSpaces size ~= 1 ifTrue: [^#()]. nameSpace := nameSpaces asArray first. sharedVariables := self environment sharedVariablesForClass: nameSpace. ^sharedVariables collect: [:each | RBInitializerDefinition nameSpace: nameSpace key: each]
displayTextFor: anInitializerDefinition | text | text := super displayTextFor: anInitializerDefinition. navigator showOnlyFiltered ifTrue: [^text]. (navigator parcels , navigator packages anySatisfy: [:each | each definesName: anInitializerDefinition variableName in: anInitializerDefinition classOrNameSpace]) ifTrue: [text addEmphasis: #(#bold) removeEmphasis: #() allowDuplicates: false]. ^text
fillInListFor: aNavigatorState | protocols | protocols := aNavigatorState protocols. (protocols isEmpty and: [self class showAllItemsWhenNothingSelected]) ifTrue: [protocols := self allSharedVariableProtocolsIn: aNavigatorState]. ^self sharedVariableDefinitionsFor: protocols in: aNavigatorState classOrNameSpace
protocolsForSelection | protocols selections | selections := self selections. selections isEmpty ifTrue: [^#()]. protocols := OrderedCollection new. selections do: [:each | | protocol | protocol := self environment whichProtocolIncludesVariable: each variableName in: each classOrNameSpace. (protocol notNil and: [(protocols includes: protocol) not]) ifTrue: [protocols add: protocol]]. ^protocols
sharedVariableDefinitionsFor: protocols in: class | selectors | selectors := OrderedCollection new. class notNil ifTrue: [protocols do: [:each | selectors addAll: (self sharedVariableDefinitionsIn: each)]]. ^selectors
sortBlock ^ [:a :b | a == b or: [a variableName < b variableName or: [a variableName = b variableName and: [a implementingClass allSuperclasses size > b implementingClass allSuperclasses size]]]]
</methods> <methods> Refactory.Browser.SharedVariableNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.TabPartDescription <category>private</category>
buildSelector: aSymbol buildSelector := aSymbol
enabledSelector: aSymbol enabledSelector := aSymbol
matchSelector: aSymbol matchSelector := aSymbol
name: aString name := aString
</methods> <methods> Refactory.Browser.TabPartDescription <category>testing</category>
isEnabledIn: aNavigatorState for: aTabNavigatorPart ^aTabNavigatorPart perform: enabledSelector with: aNavigatorState
matches: aNavigatorState for: aTabNavigatorPart ^aTabNavigatorPart perform: matchSelector with: aNavigatorState
</methods> <methods> Refactory.Browser.TabPartDescription <category>printing</category>
identifier ^(name respondsTo: #key) ifTrue: [name key asString] ifFalse: [name asString]
printOn: aStream aStream nextPutAll: name asString
</methods> <methods> Refactory.Browser.TabPartDescription <category>accessing</category>
buildIn: aTabNavigatorPart ^aTabNavigatorPart perform: buildSelector
</methods> <methods> Refactory.Browser.TabPartDescription class <category>instance creation</category>
named: aString buildWith: buildSelector match: matchSelector enabled: enabledSelector ^(self new) name: aString; buildSelector: buildSelector; matchSelector: matchSelector; enabledSelector: enabledSelector; yourself
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>updating widgets</category>
addBindingPackages: aNavigatorState to: pundles aNavigatorState classesAndNameSpaces do: [:each | self addPackagesIfAbsent: (self storeRegistry packagesContaining: each) to: pundles]
addPackagesIfAbsent: packages to: pundles | allPundles | allPundles := OrderedCollection new. pundles do: [:each | allPundles addAll: each allContainedItems; add: each]. (packages anySatisfy: [:each | allPundles includes: each]) ifTrue: [^self]. pundles addAll: packages
addSelectorPackages: aNavigatorState to: pundles navigator showOnlyFiltered ifFalse: [^self]. aNavigatorState methodDefinitions do: [:each | (each implementingClass includesSelector: each selector) ifTrue: [| package | package := self storeRegistry containingPackageForSelector: each selector class: each implementingClass. package notNil ifTrue: [self addPackagesIfAbsent: (Array with: package) to: pundles]]]
addSharedVariablePackages: aNavigatorState to: pundles | vars class | navigator showOnlyFiltered ifFalse: [^self]. vars := aNavigatorState sharedVariableNames. vars isEmpty ifTrue: [^self]. class := aNavigatorState classOrNameSpace. class isNil ifTrue: [^self]. vars do: [:each | | packages package binding | binding := class bindingFor: each. binding notNil ifTrue: [package := self storeRegistry containingPackageForDataKey: each nameSpace: class. packages := package notNil ifTrue: [Array with: package] ifFalse: [#()]. self addPackagesIfAbsent: packages to: pundles]]
selectedItemsIn: aNavigatorState ^aNavigatorState packages
selectState: aNavigatorState | pundles | self fillInListFor: aNavigatorState needsRefresh: false. pundles := OrderedCollection withAll: (self selectedItemsIn: aNavigatorState). self addSelectorPackages: aNavigatorState to: pundles; addSharedVariablePackages: aNavigatorState to: pundles; addBindingPackages: aNavigatorState to: pundles. self expandToShowPundles: pundles. aNavigatorState pundles: pundles. self select: pundles
updateWithState: aNavigatorState | pundles | pundles := self selectedItemsIn: aNavigatorState. self fillInListFor: aNavigatorState needsRefresh: true. pundles := pundles select: [:each | self list includes: each]. self expandToShowPundles: pundles. (pundles isEmpty and: [self shouldSelectPackages]) ifTrue: [pundles := self list]. aNavigatorState pundles: pundles. self select: pundles
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>private</category>
allSelectedClassesFor: aNavigatorState | classes | classes := Set new. aNavigatorState selectedClasses do: [:each | self inheritedClassesOf: each do: [:class | classes add: class]]. ^classes
displayTextFor: aPundleModel ^aPundleModel == definingPackage ifTrue: [aPundleModel displayString asText allBold] ifFalse: [aPundleModel displayString]
expandToShowPundles: pundles pundles removeAllSuchThat: [:each | (self list includes: each) not]
fillInListFor: aNavigatorState needsRefresh: aBoolean | selectedClasses packages classPackages | packages := Set new. selectedClasses := self allSelectedClassesFor: aNavigatorState. selectedClasses do: [:each | classPackages := self storeRegistry packagesContaining: each. packages addAll: classPackages]. definingPackage := selectedClasses size = 1 ifTrue: [classPackages first] ifFalse: [nil]. self updateListWith: packages
sortBlock ^[:a :b | a name < b name]
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>testing</category>
shouldSelectPackages ^true
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState pundles: self selections
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #pundleMenu
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter anAspectSymbol == #unloadComponent: ifTrue: [self list remove: aParameter first ifAbsent: []]
</methods> <methods> Refactory.Browser.HierarchyPundleNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Graphics.GraphicPart <category>accessing</category>
graphic ^graphic
graphic: anObject graphic := anObject
</methods> <methods> Graphics.GraphicPart <category>displaying</category>
displayOn: aGC graphic displayOn: aGC
</methods> <methods> Graphics.GraphicPart <category>bounds accessing</category>
bounds: aRectangle graphic bounds: aRectangle
preferredBounds ^graphic preferredBounds
</methods> <methods> Graphics.GraphicPart class <category>instance creation</category>
graphic: aVisualComponent ^self new graphic: aVisualComponent
</methods> <methods> Refactory.Browser.RBActionEditor <category>actions</category>
acceptAction self isValidName ifFalse: [(self confirm: (#SpecExistsOverwriteQ << #browser >> 'A specification with that name already exists. Overwrite?')) ifFalse: [^self]]. self saveSpec
addSpecification self actionList selection: nil. self changedActionSpecification
browseActions self actionHolder value isNil ifTrue: [^self]. (BrowserEnvironment new implementorsOf: self actionHolder value) openEditor
removeAction (self confirm: (#AreYouSure << #browser >> 'Are you sure?')) ifFalse: [^self]. self actionList list remove: spec ifAbsent: []
saveActionsToFile | filename stream | filename := self request: (#EnterFileName << #browser >> 'Enter file name'). filename isEmpty ifTrue: [^self]. stream := filename asFilename writeStream. [stream nextPutAll: '#('. self actionsArray do: [:s | stream store: s] separatedBy: [stream cr]. stream nextPutAll: ')'; cr] ensure: [stream close]
saveActionsToMethod | src | src := String new writeStream. src nextPutAll: 'actionArray'; crtab; nextPutAll: ('"This method was automatically generated from ''<1s> open''"' expandMacrosWith: self class fullName); cr; crtab; nextPutAll: '^#('. self actionsArray do: [:s | src store: s] separatedBy: [src crtab]. src nextPutAll: ')'. self performChange: ((#{AddMethodChange} valueOrDo: [self error: 'Change objects not loaded']) compile: src contents in: RBCommand class classified: #'actions-initialization')
</methods> <methods> Refactory.Browser.RBActionEditor <category>aspects</category>
actionHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^actionHolder isNil ifTrue: [actionHolder := nil asValue] ifFalse: [actionHolder]
actionList "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^actionList isNil ifTrue: [actionList := SelectionInList new] ifFalse: [actionList]
descriptionHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^descriptionHolder isNil ifTrue: [descriptionHolder := String new asValue] ifFalse: [descriptionHolder]
enabledHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^enabledHolder isNil ifTrue: [enabledHolder := nil asValue] ifFalse: [enabledHolder]
nameHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^nameHolder isNil ifTrue: [nameHolder := String new asValue] ifFalse: [nameHolder]
receiverHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^receiverHolder isNil ifTrue: [receiverHolder := nil asValue] ifFalse: [receiverHolder]
typeList "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^typeList isNil ifTrue: [typeList := SelectionInList new] ifFalse: [typeList]
</methods> <methods> Refactory.Browser.RBActionEditor <category>changing</category>
changedAction self updateAcceptCancelButtons
changedActionSpecification | action | action := self actionList selection. action isNil ifTrue: [action := RBCommand new]. self initializeForAction: action
changedDescription self updateAcceptCancelButtons
changedEnabled self updateAcceptCancelButtons
changedName self updateAcceptCancelButtons
changedReceiver self updateAcceptCancelButtons
changedType self updateAcceptCancelButtons
</methods> <methods> Refactory.Browser.RBActionEditor <category>private</category>
actionsArray ^(self actionList list collect: [:each | each literalArrayEncoding]) asArray
disableAccept (self builder componentAt: #acceptButton) disable
disableCancel (self builder componentAt: #cancelButton) disable
enableAccept (self builder componentAt: #acceptButton) enable
enableCancel (self builder componentAt: #cancelButton) enable
initializeForAction: aRBActionSpecification spec := aRBActionSpecification. self typeList selection: aRBActionSpecification class. self nameHolder value: aRBActionSpecification key. self descriptionHolder value: aRBActionSpecification description. self enabledHolder value: aRBActionSpecification enabled. self receiverHolder value: aRBActionSpecification receiver. self actionHolder value: aRBActionSpecification action
installActions RBCommand initializeWithActions: self actionsArray
saveSpec | index isNewName | index := self actionList list indexOf: spec. isNewName := self nameHolder value ~= spec name or: [index = 0]. self typeList selection ~= spec class ifTrue: [spec := self typeList selection new. index > 0 ifTrue: [self actionList list at: index put: spec]]. spec name: self nameHolder value; description: self descriptionHolder value asString; action: self actionHolder value; enabled: self enabledHolder value; receiver: self receiverHolder value. index = 0 ifTrue: [self actionList list add: spec]. isNewName ifTrue: [self actionList list sortWith: [:a :b | a name asString < b name asString]]. self actionList selection: spec. self changedActionSpecification
updateAcceptCancelButtons self hasChanged ifFalse: [^self disableAccept; disableCancel]. self enableCancel. self isValidSpecification ifTrue: [self enableAccept] ifFalse: [self disableAccept]
</methods> <methods> Refactory.Browser.RBActionEditor <category>testing</category>
hasActionSpecificationSelected ^self actionList selection notNil
hasChanged ^spec name ~= self nameHolder value or: [spec description ~= self descriptionHolder value or: [spec action ~= self actionHolder value or: [spec enabled ~= self enabledHolder value or: [spec receiver ~= self receiverHolder value or: [spec class ~= self typeList selection]]]]]
isValidName ^(self actionList list detect: [:each | each name = self nameHolder value] ifNone: [spec]) = spec
isValidSpecification ^(self nameHolder value size = 0 or: [self actionHolder value isNil or: [self receiverHolder value isNil or: [self typeList selection isNil]]]) not
</methods> <methods> Refactory.Browser.RBActionEditor <category>initialize-release</category>
initialize super initialize. self actionList list: (List withAll: ((RBCommand actions values collect: [:each | each copy]) asSortedCollection: [:a :b | a name asString < b name asString])). self typeList list: (List withAll: RBCommand withAllSubclasses). self nameHolder onChangeSend: #changedName to: self. self descriptionHolder onChangeSend: #changedDescription to: self. self actionHolder onChangeSend: #changedAction to: self. self enabledHolder onChangeSend: #changedEnabled to: self. self receiverHolder onChangeSend: #changedReceiver to: self. self typeList selectionIndexHolder onChangeSend: #changedType to: self
</methods> <methods> Refactory.Browser.RBActionEditor <category>interface opening</category>
postBuildWith: aBuilder super postBuildWith: aBuilder. self changedActionSpecification
</methods> <methods> Refactory.Browser.RBActionEditor <category>menus</category>
actionSpecificationMenu ^self buildTopLevelMenuFrom: #actionMenu
</methods> <methods> Refactory.Browser.RBActionEditor class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>private</category>
classForName: aString | classOrNameSpace | classOrNameSpace := self objectForName: aString. ^classOrNameSpace isBehavior ifTrue: [classOrNameSpace] ifFalse: [nil]
convertToFullNames: classNameSpaceCollection ^classNameSpaceCollection collect: [:each | | name | name := each fullName asString. (name ~= 'Root' and: [(name indexOfSubCollection: 'Root.' startingAt: 1) ~= 1]) ifTrue: [name := (name indexOfSubCollection: 'Smalltalk.' startingAt: 1) = 1 ifTrue: ['Root.' , name] ifFalse: ['Root.Smalltalk.' , name]]. name]
displayTextFor: classNameWrapper | type each simpleName | each := self objectForName: classNameWrapper fullName. type := (each notNil and: [Override isOverriddenClassOrNameSpace: each]) ifTrue: [Array with: #color -> self overriddenColor] ifFalse: [#()]. simpleName := (each isNil ifTrue: [''] ifFalse: [each name]) asText. (self class shouldBoldDefinedItems and: [each notNil and: [self isClassOrNameSpaceDefinedInSelection: each]]) ifTrue: [simpleName emphasizeAllWith: (type copyWith: #bold)] ifFalse: [simpleName emphasizeAllWith: type]. ^simpleName
fillInListFor: aNavigatorState | names | names := self namesForState: aNavigatorState. self updateListWith: names asList
iconFor: classNameWrapper | classOrNameSpace | classOrNameSpace := self objectForName: classNameWrapper fullName. classOrNameSpace ifNil: [^nil]. ^(self showWarningIconForObject: classOrNameSpace) ifTrue: [| warningIcon | warningIcon := ListIconLibrary visualFor: #warningOverlay. classOrNameSpace toolListIcon ifNil: [warningIcon] ifNotNil: [:originalIcon | VisualStack with: originalIcon with: warningIcon]] ifFalse: [classOrNameSpace toolListIcon]
intersect: bindingCollection with: anotherCollection bindingCollection isNil ifTrue: [^anotherCollection]. anotherCollection isNil ifTrue: [^bindingCollection]. ^bindingCollection select: [:each | anotherCollection includes: each]
isClassOrNameSpaceDefinedInSelection: aClassOrNameSpace | block | block := [:each | (each definesClassOrNameSpace: aClassOrNameSpace) ifTrue: [^true]]. navigator parcels do: block. navigator packages do: block. ^false
namesForState: aNavigatorState | names | names := self parcelBindingReferencesFor: aNavigatorState parcels. names := self intersect: names with: (self packageClassesFor: aNavigatorState packages). names isNil ifTrue: [names := #()]. ^self convertToObjectNameWrappers: names
objectForName: aString ^(aString asStrictReference home: nil) bindingOrNil value
packageClassesFor: packageCollection | objects | packageCollection isEmpty ifTrue: [^nil]. objects := Set new. packageCollection do: [:each | objects addAll: (self convertToFullNames: each allClasses); addAll: (self convertToFullNames: each allNameSpaces)]. ^objects
parcelBindingReferencesFor: parcelCollection | objects | parcelCollection isEmpty ifTrue: [^nil]. objects := Set new. parcelCollection do: [:each | each allClassesAndNameSpaces do: [:class | objects add: class fullRootName asString]]. ^objects
showWarningIconForObject: aClassOrNameSpace ^ShowWarningsForUncommentedObjects and: [aClassOrNameSpace needsComment]
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState objectNames: self selections
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>private-overrides</category>
convertToObjectNameWrappers: aCollection | any | aCollection isEmpty ifTrue: [^aCollection]. any := aCollection detect: [:each | true]. ^any isString ifTrue: [aCollection collect: [:each | ObjectNameWrapper fullName: each]] ifFalse: [aCollection]
list ^super list collect: [:each | each asString]
list: aCollection ^super list: (self convertToObjectNameWrappers: aCollection)
select: aCollection in: aSelectionInList ^super select: (self convertToObjectNameWrappers: aCollection) in: aSelectionInList
selections ^super selections collect: [:each | each asString]
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState self fillInListFor: aNavigatorState. self select: aNavigatorState objectNames
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListFor: aNavigatorState. self select: initialSelections. aNavigatorState objectNames: self selections
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>menus</category>
defaultMenu ^navigator menuNamed: #classMenu
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>changing</category>
changed: anAspectSymbol with: aParameter anAspectSymbol == #navigatorState ifTrue: [aParameter inheritToClass: nil]. ^super changed: anAspectSymbol with: aParameter
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter (#( #addClass: #addClass:attributes: #addNameSpace: #addNameSpace:attributes: #changeClass: #changeClass:attributes: #removeClass: #removeNameSpace: #renameClass:as: #renameNameSpace:as:) includes: anAspectSymbol) ifTrue: [^self updateClassList]. (#( #commentClass: #commentNameSpace:) includes: anAspectSymbol) ifTrue: [^self invalidateObjectListWidget]
updateClassList self mergeIntoList: (self sortList: (self namesForState: navigator state))
</methods> <methods> Refactory.Browser.ClassNavigatorPart <category>testing</category>
showIcons ^true
</methods> <methods> Refactory.Browser.ClassNavigatorPart class <category>testing</category>
shouldBoldDefinedItems ^true
</methods> <methods> Refactory.Browser.ClassNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart <category>changing</category>
changed self fillInObjectForSelection. super changed
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart <category>private</category>
fillInObjectForSelection | objects firstObject | objects := self objectsForSelection. firstObject := objects detect: [:each | true] ifNone: [nil]. self objectHolder value: firstObject
namesForState: aNavigatorState | names | names := self environment nameSpaceObjectNames. ^self convertToObjectNameWrappers: names
objectsForSelection ^navigator navigatorType = #Parcel ifTrue: [self parcelsForSelection] ifFalse: [self packagesForSelection]
packagesForSelection | packages | packages := OrderedCollection new. self selections do: [:each | | pc ref binding | ref := each asQualifiedReference. binding := ref bindingOrNil. binding notNil ifTrue: [pc := self storeRegistry allContainingPackagesForClassOrNameSpace: binding value. pc do: [:package | (packages includes: package) ifFalse: [packages add: package]]]]. ^packages
parcelsForSelection | parcels | parcels := OrderedCollection new. self selections do: [:each | | ref binding pc | ref := each asQualifiedReference. binding := ref bindingOrNil. binding notNil ifTrue: [pc := Parcel parcelsForBinding: binding. pc notNil ifTrue: [pc do: [:parcel | (parcels includes: parcel) ifFalse: [parcels add: parcel]]]]]. ^parcels
select: aCollection in: aSelectionInList super select: aCollection in: aSelectionInList. self fillInObjectForSelection
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart <category>aspects</category>
objectHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^objectHolder isNil ifTrue: [objectHolder := nil asValue] ifFalse: [objectHolder]
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState navigator navigatorType = #Parcel ifTrue: [aNavigatorState parcels: self objectsForSelection] ifFalse: [aNavigatorState pundles: self objectsForSelection]. super fillInState: aNavigatorState
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart class <category>testing</category>
shouldBoldDefinedItems ^false
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>updating widgets</category>
selectionForState: aNavigatorState "In case we want to store the previous tab selection" ^nil
selectState: aNavigatorState self selectTabListWith: aNavigatorState. self selectStateForComponents: aNavigatorState
selectStateForComponents: aNavigatorState self components do: [:each | each selectState: aNavigatorState]
selectTabListWith: aNavigatorState | tabs previousSelection possibleSelections newSelection | previousSelection := self selection. tabs := self class tabDescriptions select: [:each | each isEnabledIn: aNavigatorState for: self]. self list: tabs asList. possibleSelections := tabs select: [:each | each matches: aNavigatorState for: self]. newSelection := self selectionForState: aNavigatorState. (possibleSelections includes: newSelection) ifFalse: [newSelection := (possibleSelections includes: previousSelection) ifTrue: [previousSelection] ifFalse: [possibleSelections isEmpty ifTrue: [nil] ifFalse: [possibleSelections first]]]. self select: newSelection. newSelection ~= previousSelection ifTrue: [self installSubcanvas]
updateComponentsWithState: aNavigatorState self components do: [:each | each updateWithState: aNavigatorState]
updateTabListWith: aNavigatorState | tabs previousSelection | previousSelection := self objectList selection. tabs := (self class tabDescriptions select: [:each | each isEnabledIn: aNavigatorState for: self]) asList. self list: tabs asList. (tabs includes: previousSelection) ifTrue: [self objectList selection: previousSelection] ifFalse: [self objectList selection: (tabs isEmpty ifTrue: [nil] ifFalse: [tabs first]). self installSubcanvas]
updateWithState: aNavigatorState self updateTabListWith: aNavigatorState. self updateComponentsWithState: aNavigatorState
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>testing</category>
alwaysEnabled: aNavigatorState ^true
hasNameSpace: aNavigatorState | classes | classes := aNavigatorState classesAndNameSpaces. ^classes anySatisfy: [:each | each isNameSpace]
isPackage: aNavigatorState ^navigator isViewingPackages
isParcel: aNavigatorState ^navigator isViewingParcels
onlyClasses: aNavigatorState | classes | classes := aNavigatorState classesAndNameSpaces. ^classes notEmpty and: [classes allSatisfy: [:each | each isBehavior]]
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>aspects</category>
objectList "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^objectList isNil ifTrue: [objectList := SelectionInList new] ifFalse: [objectList]
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>private</category>
componentNamed: aSymbol ^(namedComponents detect: [:each | each key = aSymbol] ifNone: [nil]) value
componentNamed: aSymbol put: aValue namedComponents add: aSymbol -> aValue
components ^namedComponents collect: [:each | each value]
initializeComponents namedComponents notNil ifTrue: [self releaseComponents]. namedComponents := OrderedCollection new
installSubcanvas | tab | tab := self selection. tab isNil ifTrue: [^self]. tab buildIn: self
installSubcanvas: aSpec using: anApplicationModel self initializeComponents. (builder componentAt: #subcanvas) widget client: anApplicationModel spec: aSpec. (anApplicationModel ~~ self and: [anApplicationModel respondsTo: #updateDisplay]) ifTrue: [anApplicationModel updateDisplay]. self components reverse inject: self into: [:sum :each | each addDependent: sum; yourself]
list ^self objectList list
list: aList self list = aList ifTrue: [^self]. ^self objectList list: aList
releaseComponents self components do: [:each | each release]
select: anObject self selection = anObject ifTrue: [^self]. ^self objectList selection: anObject
selection ^self objectList selection
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>updating</category>
update: anAspectSymbol with: aParameter from: aSender (aSender == self components last and: [anAspectSymbol == #navigatorState]) ifTrue: [^self changed: #navigatorState with: aParameter]. ^super update: anAspectSymbol with: aParameter from: aSender
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>initialize-release</category>
initialize super initialize. self initializeComponents
navigator: aNavigator super navigator: aNavigator. self components do: [:each | each navigator: aNavigator]
release self releaseComponents. super release
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>changing</category>
changedTab self showWaitCursorWhile: [self installSubcanvas]
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>subcanvases</category>
subcanvases ^self components , super subcanvases
updateDisplay subcanvasBuilder isNil ifTrue: [self installSubcanvas]. super updateDisplay
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState self components do: [:each | each fillInState: aNavigatorState]
initiallyOpened: aNavigatorState self selectTabListWith: aNavigatorState. self components do: [:each | each initiallyOpened: aNavigatorState]
</methods> <methods> Refactory.Browser.TabNavigatorPart <category>interface opening</category>
postBuildWith: aBuilder builder == aBuilder ifFalse: [subcanvasBuilder := aBuilder]. super postBuildWith: aBuilder
</methods> <methods> Refactory.Browser.TabNavigatorPart class <category>accessing</category>
defaultTabDescriptions ^self subclassResponsibility
resetTabDescriptions "TabNavigatorPart resetTabDescriptions" tabDescriptions := nil. self subclasses do: [:each | each resetTabDescriptions]
tabDescriptions tabDescriptions isNil ifTrue: [tabDescriptions := self defaultTabDescriptions]. ^tabDescriptions
</methods> <methods> Refactory.Browser.TabNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>private</category>
buildClassSubcanvas type := #class. self buildSelectorSubcanvas
buildInstanceSubcanvas type := #instance. self buildSelectorSubcanvas
buildInstanceVariableSubcanvas type := #instance. self installSubcanvas: #instanceVariableWindowSpec using: self
buildSelectorSubcanvas | subcanvases | subcanvases := self components. (subcanvases size = 1 and: [subcanvases first class = SelectorNavigatorPart]) ifFalse: [self installSubcanvas: #selectorWithProtocolWindowSpec using: self]
buildSharedVariableSubcanvas type := #sharedVariable. self installSubcanvas: #sharedVariableWithProtocolWindowSpec using: self
buildSystemClassSubcanvas type := #class. self buildSystemSelectorSubcanvas
buildSystemInstanceSubcanvas type := #instance. self buildSystemSelectorSubcanvas
buildSystemSelectorSubcanvas | subcanvases | subcanvases := self components. (subcanvases size = 2 and: [subcanvases first class = SelectorProtocolNavigatorPart and: [subcanvases last class = SelectorNavigatorPart]]) ifFalse: [self installSubcanvas: #selectorWindowSpec using: self]
buildSystemSharedVariableSubcanvas type := #sharedVariable. self installSubcanvas: #sharedVariableWindowSpec using: self
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>testing</category>
isClass: aNavigatorState aNavigatorState objectNames size ~= 1 ifTrue: [^true]. ^aNavigatorState selectedClass notNil
isClassAndNotSystem: aNavigatorState ^(self isNotSystem: aNavigatorState) and: [self isClass: aNavigatorState]
isClassAndSystem: aNavigatorState ^(self isSystem: aNavigatorState) and: [self isClass: aNavigatorState]
isClassMethod: aNavigatorState ^aNavigatorState isMeta and: [aNavigatorState isData not]
isInstanceMethod: aNavigatorState ^aNavigatorState isMeta not and: [aNavigatorState isData not and: [(self isInstanceVariable: aNavigatorState) not]]
isInstanceVariable: aNavigatorState ^(aNavigatorState propertyAt: #instanceVariables ifAbsent: [#()]) notEmpty
isNotSystem: aNavigatorState ^(self isSystem: aNavigatorState) not
isSharedVariable: aNavigatorState ^aNavigatorState isData or: [aNavigatorState classOrNameSpace isNameSpace]
isSystem: aNavigatorState ^showProtocols or: [navigator environment isSystem]
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>accessing</category>
categories | categories | categories := self componentNamed: #categories. categories isNil ifTrue: [categories := SharedVariableProtocolNavigatorPart new. navigator notNil ifTrue: [categories navigator: navigator]. self componentNamed: #categories put: categories]. ^categories
instanceVariables | instanceVariables | instanceVariables := self componentNamed: #instanceVariables. instanceVariables isNil ifTrue: [instanceVariables := InstanceVariableNavigatorPart new. navigator notNil ifTrue: [instanceVariables navigator: navigator]. self componentNamed: #instanceVariables put: instanceVariables]. ^instanceVariables
instanceVariableSelectors | instanceVariableSelectors | instanceVariableSelectors := self componentNamed: #instanceVariableSelectors. instanceVariableSelectors isNil ifTrue: [instanceVariableSelectors := SelectorNavigatorPart new. instanceVariableSelectors listSelector: #instanceVariableSelectorsIn:. navigator notNil ifTrue: [instanceVariableSelectors navigator: navigator]. self componentNamed: #instanceVariableSelectors put: instanceVariableSelectors]. ^instanceVariableSelectors
protocols | protocols | protocols := self componentNamed: #protocols. protocols isNil ifTrue: [protocols := SelectorProtocolNavigatorPart new. navigator notNil ifTrue: [protocols navigator: navigator]. self componentNamed: #protocols put: protocols]. ^protocols
selectors | selectors | selectors := self componentNamed: #selectors. selectors isNil ifTrue: [selectors := SelectorNavigatorPart new. navigator notNil ifTrue: [selectors navigator: navigator]. self componentNamed: #selectors put: selectors]. ^selectors
selectorsWithProtocol | selectorsWithProtocol | selectorsWithProtocol := self componentNamed: #selectorsWithProtocol. selectorsWithProtocol isNil ifTrue: [selectorsWithProtocol := SelectorNavigatorPart new. selectorsWithProtocol listSelector: #allSelectorsIn:. navigator notNil ifTrue: [selectorsWithProtocol navigator: navigator]. self componentNamed: #selectorsWithProtocol put: selectorsWithProtocol]. ^selectorsWithProtocol
sharedVariables | sharedVariables | sharedVariables := self componentNamed: #sharedVariables. sharedVariables isNil ifTrue: [sharedVariables := SharedVariableNavigatorPart new. navigator notNil ifTrue: [sharedVariables navigator: navigator]. self componentNamed: #sharedVariables put: sharedVariables]. ^sharedVariables
sharedVariablesWithProtocol | sharedVariablesWithProtocol | sharedVariablesWithProtocol := self componentNamed: #sharedVariablesWithProtocol. sharedVariablesWithProtocol isNil ifTrue: [sharedVariablesWithProtocol := SharedVariableNavigatorPart new. sharedVariablesWithProtocol listSelector: #allSharedVariablesIn:. navigator notNil ifTrue: [sharedVariablesWithProtocol navigator: navigator]. self componentNamed: #sharedVariablesWithProtocol put: sharedVariablesWithProtocol]. ^sharedVariablesWithProtocol
showProtocols ^showProtocols
showProtocols: aBoolean showProtocols := aBoolean
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>initialize-release</category>
initialize super initialize. type := #instance. showProtocols := false
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>changing</category>
changedTab super changedTab. self updateComponentsWithState: navigator getState. self changed
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState aNavigatorState type: type. super fillInState: aNavigatorState
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart class <category>accessing</category>
defaultTabDescriptions | descriptions | descriptions := OrderedCollection new. descriptions add: (TabPartDescription named: #Instance << #labels >> 'Instance' buildWith: #buildSystemInstanceSubcanvas match: #isInstanceMethod: enabled: #isClassAndSystem:); add: (TabPartDescription named: #Class << #labels >> 'Class' buildWith: #buildSystemClassSubcanvas match: #isClassMethod: enabled: #isClassAndSystem:); add: (TabPartDescription named: #Instance << #labels >> 'Instance' buildWith: #buildInstanceSubcanvas match: #isInstanceMethod: enabled: #isClassAndNotSystem:); add: (TabPartDescription named: #Class << #labels >> 'Class' buildWith: #buildClassSubcanvas match: #isClassMethod: enabled: #isClassAndNotSystem:); add: (TabPartDescription named: #SharedVariable << #labels >> 'Shared Variable' buildWith: #buildSystemSharedVariableSubcanvas match: #isSharedVariable: enabled: #isSystem:); add: (TabPartDescription named: #SharedVariable << #labels >> 'Shared Variable' buildWith: #buildSharedVariableSubcanvas match: #isSharedVariable: enabled: #isNotSystem:); add: (TabPartDescription named: #InstanceVariable << #labels >> 'Instance Variable' buildWith: #buildInstanceVariableSubcanvas match: #isInstanceVariable: enabled: #isClassAndSystem:). ^descriptions
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.Navigator <category>accessing</category>
addConstantStateBlock: block self parts add: (ConstantNavigatorPart onNavigator: self stateBlock: block). self getState
dispatcher dispatcher isNil ifTrue: [self dispatcher: RBActionDispatcher new]. ^dispatcher
dispatcher: aRBActionDispatcher dispatcher := aRBActionDispatcher. dispatcher navigator: self
environment ^environment
environment: aBrowserEnvironment environment := aBrowserEnvironment
getState "Get the current selection as a NavigatorState" | inheritToClass inheritToType | inheritToClass := self inheritToClass. inheritToType := self inheritToType. state := self navigatorStateClass new. state inheritToType: inheritToType. inheritToType = #class ifTrue: [state inheritToClass: inheritToClass]. state nameSpace: self defaultNameSpace. parts do: [:each | each fillInState: state]. state protocol notNil ifTrue: [LastProtocol := state protocol]. ^state
setBinding: aBinding | newState ns | newState := self getState. newState clearClassDependentFields. aBinding isForGeneral ifTrue: [ns := Root whoDefinesBinding: aBinding. ns isNil ifTrue: [^self]. newState objectName: ns fullRootName; protocols: #(); definition: (RBInitializerDefinition nameSpace: ns key: aBinding key)] ifFalse: [newState objectName: aBinding value fullRootName]. self updateWithState: newState
setState: aNavigatorState state := aNavigatorState. self updatePartsWith: aNavigatorState
state "Return the last computed state" ^state
updateWithState: aNavigatorState self setState: aNavigatorState; changed
</methods> <methods> Refactory.Browser.Navigator <category>private-category</category>
classesMatching: aBlock | names | names := Set new. self environment bindingReferencesDo: [:each | (aBlock value: each) ifTrue: [names add: each]]. ^names
findAPrompt: prompt retry: retry type: aBlock | destClassName | destClassName := self request: prompt. destClassName isEmpty ifTrue: [^nil]. ^self findClass: destClassName ifNotFound: [(self confirm: retry) ifTrue: [^self findAPrompt: prompt retry: retry type: aBlock]. ^nil] type: aBlock
findClass | class | class := IncrementalSearchDialog selectClass: #FindClass << #dialogs >> 'Find Class'. class notNil ifTrue: [self setBinding: class strictReference binding]
findClass: aString ifNotFound: aBlock ^self findClass: aString ifNotFound: aBlock type: [:each | true]
findClass: aString ifNotFound: aBlock type: testBlock | names | names := self findReferencesMatching: aString type: testBlock. names isEmpty ifTrue: [aBlock value]. names size = 1 ifTrue: [^names asArray first]. names := names asSortedCollection: [:a :b | a fullName < b fullName]. ^self choose: 'What item do you want?' fromList: names values: names lines: 10 cancel: [^nil]
findGlobalName | dialog bindingRef | self changeRequest ifFalse: [^self]. dialog := IncrementalSearchDialog forSelectionWithSearch: [:entry | self referencesMatchingPartialName: entry]. dialog windowLabel: #FindClassVariableOrNameSpace << #browser >> 'Find Class, Variable, or Name Space'; firstLabel: #FindC << #browser >> 'Find:'; secondLabel: #ClassesNamespacesAndVariablesC << #browser >> 'Classes, Variables, Name Spaces:'; iconSelector: #toolListIcon; displayStringSelector: #toolListDisplayString; objectToStringBlock: [:class | class name asString]. bindingRef := dialog select. bindingRef isNil ifTrue: [^self]. self setBinding: bindingRef binding
findNameSpace (IncrementalSearchDialog selectNamespace: #FindNamespace << #dialogs >> 'Find Namespace') ifNotNil: [:object | self setBinding: object fullyQualifiedReference binding]
findPrompt: prompt retry: retry type: block | bindingRef | self changeRequest ifFalse: [^self]. bindingRef := self findAPrompt: prompt retry: retry type: block. bindingRef isNil ifTrue: [^self]. self setBinding: bindingRef binding
findReferencesMatching: aString type: testBlock | names destClassName | destClassName := aString trimBlanks. names := self classesMatching: [:each | (destClassName match: each simpleName) and: [testBlock value: each binding]]. names notEmpty ifTrue: [^names]. names := self classesMatching: [:each | (destClassName match: each fullName) and: [testBlock value: each binding]]. destClassName := '*' , destClassName , '*'. names notEmpty ifTrue: [^names]. names := self classesMatching: [:each | (destClassName match: each simpleName) and: [testBlock value: each binding]]. names notEmpty ifTrue: [^names]. ^self classesMatching: [:each | (destClassName match: each fullName) and: [testBlock value: each binding]]
findSharedVariable self findPrompt: #FindSharedVariable << #dialogs >> 'Find Shared Variable' retry: #FindSharedVariableRetry << #dialogs >> 'Could not find a shared variable matching your input. Try again?' type: [:each | each isForGeneral]
referencesMatchingPartialName: aString | pattern matches nameSelector | aString trimBlanks isEmpty ifTrue: [^Array new]. pattern := aString trimBlanks, '*'. nameSelector := (pattern includes: $.) ifTrue: [#fullName] ifFalse: [#simpleName]. matches := self classesMatching: [:each | pattern match: (each perform: nameSelector)]. ^matches asSortedCollection: [:a :b | a toolListDisplayString < b toolListDisplayString]
</methods> <methods> Refactory.Browser.Navigator <category>accessing-protocol</category>
isData ^state isData
isMethod ^self isData not
isProtocolSelected ^self protocol notNil
protocol ^state protocol
protocols ^state protocols
</methods> <methods> Refactory.Browser.Navigator <category>accessing-class/inst switch</category>
isMeta ^state isMeta
</methods> <methods> Refactory.Browser.Navigator <category>accessing-selector</category>
definition ^state definition
definitions ^state definitions
inheritToClass ^state inheritToClass
inheritToClass: aClass state inheritToClass: aClass
inheritToType ^state inheritToType
inheritToType: aSymbol state inheritToType: aSymbol
isDefinitionSelected ^self definitions notEmpty
isMethodOverridden ^(self selector notNil and: [Override isOverriddenSelector: self selector class: self selectedClass]) or: [self sharedVariableNames notEmpty and: [Override isOverriddenStatic: self sharedVariableName in: self classOrNameSpace]]
isSelectorSelected ^self selector notNil
isSharedVariableSelected ^self sharedVariableNames notEmpty
isStaticOverridden ^self sharedVariableNames notEmpty and: [Override isOverriddenStatic: self sharedVariableName in: self classOrNameSpace]
methodClass ^state methodClass
methodDefinitions ^state methodDefinitions
selector ^state selector
selectors ^state selectors
sharedVariableDefinitions ^state sharedVariableDefinitions
sharedVariableName ^state sharedVariableName
sharedVariableNames ^state sharedVariableNames
showOnlyFiltered ^showOnlyFiltered
</methods> <methods> Refactory.Browser.Navigator <category>accessing-namespace</category>
defaultNameSpace ^self state nameSpace ifNil: [self class defaultNameSpace]
nameSpace ^state nameSpace
setDefaultNameSpace | nameSpace | nameSpace := self classOrNameSpace. nameSpace isNameSpace ifFalse: [nameSpace := self nameSpace]. (self confirm: (#ConfirmNewNameSpace << #dialogs >> 'Make <1p> your default name space?' expandMacrosWith: nameSpace)) ifFalse: [^self]. DefaultNameSpace := nameSpace fullyQualifiedReference
</methods> <methods> Refactory.Browser.Navigator <category>accessing-pundles</category>
findPundle | dialog thePundle | self changeRequest ifFalse: [^self]. dialog := IncrementalSearchDialog forSelectionFrom: (self sortedPundleList: self storeRegistry allPundles) filterBlock: [:entry :pundle | entry, '*' match: pundle name]. dialog windowLabel: #FindPackageOrBundle << #browser >> 'Find Package or Bundle'; firstLabel: #FilterC << #browser >> 'Filter:'; secondLabel: #PackagesAndBundlesC << #browser >> 'Packages and Bundles:'; objectToStringBlock: [:pundle | pundle name]; iconSelector: #toolListIcon. thePundle := dialog select. thePundle isNil ifTrue: [^self]. self selectPundle: thePundle
isBundleSelected | pundle | pundle := self pundle. ^pundle notNil and: [pundle isBundle]
isCodeComponentSelected ^self isParcelSelected or: [self isPundleSelected]
isPackageSelected | pundle | pundle := self pundle. ^pundle notNil and: [pundle isPackage]
isPundleSelected ^self pundles notEmpty
package ^state package
packages ^state packages
pundle ^state pundle
pundles ^state pundles
selectPundle: aPundleModel | newState | newState := state copy. newState definitions: #(); protocols: #(); objectNames: #(); pundle: aPundleModel. self updateWithState: newState
</methods> <methods> Refactory.Browser.Navigator <category>accessing-parcels</category>
isParcelSelected | parcel | parcel := self parcel. ^parcel notNil and: [parcel ~= UnparceledParcel new]
parcel ^state parcel
parcels ^state parcels
</methods> <methods> Refactory.Browser.Navigator <category>updating</category>
refreshLists self updateWithState: self getState
updateNavigator self changeRequest ifFalse: [^self]. self refreshLists
updatePackageList "Update the package lists only if the receiver is viewing packages. If a browser has been spawned on package(s) or bundle(s), then the partsDictionary will not include the CodeComponentTabNavigatorPart. This part is lazily added to the partsDictionary (see #CodeComponentTabNavigatorPart), so we first check to see if the part is there before trying to refresh its list. Otherwise, it will have invalid state." (self isViewingPackages and: [partsDictionary includesKey: #CodeComponentTabNavigatorPart]) ifTrue: [self CodeComponentTabNavigatorPart refreshPackageList]
</methods> <methods> Refactory.Browser.Navigator <category>menus</category>
inheritanceKeysAndLabels ^Array with: (Array with: #root with: #ShowAllInherited << #browser >> 'Show All Inherited') with: (Array with: #rootMinusOne with: #ShowAllExceptObject << #browser >> 'Show All Except for Object') with: (Array with: #class with: #ShowNoInherited << #browser >> 'Show No Inherited')
inheritToSpecifications | class inheritToClass items inheritToType | class := self nonMetaClass. class isNil ifTrue: [^#()]. inheritToType := state inheritToType. items := OrderedCollection new. self inheritanceKeysAndLabels do: [:each | items add: ((inheritToType = each first ifTrue: [RBCheckedCommand] ifFalse: [RBCommand]) named: each last asString description: '' action: [self changeRequest ifTrue: [self inheritToType: each first. self refreshLists]] receiver: #yourself)]. items add: nil. inheritToClass := self inheritToClass instanceBehavior. items addAll: (class withAllSuperclasses reverse collect: [:each | (each == inheritToClass ifTrue: [RBCheckedCommand] ifFalse: [RBCommand]) named: each name description: (#SelectNavigatorType << #browser >> 'Select Navigator Type') asString action: [self changeRequest ifTrue: [self inheritToClass: each. self refreshLists]] receiver: #yourself]). ^items
menuNamed: aString ^menus at: aString ifAbsentPut: [self buildTopLevelMenuFrom: aString]
rebuildMenus | oldMenus | oldMenus := menus. menus := Dictionary new. oldMenus keysDo: [:each | menus at: each put: (self buildTopLevelMenuFrom: each)]. super rebuildMenus
windowMenuItems | items | items := OrderedCollection new. parts do: [:each | items addAll: each windowMenuItems]. ^items
</methods> <methods> Refactory.Browser.Navigator <category>interface opening</category>
initiallyUpdateParts parts do: [:each | each initiallyOpened: state]
postBuildWith: aBuilder super postBuildWith: aBuilder. self initiallyUpdateParts. self changed
resetBuilder super resetBuilder. self initializeParts
</methods> <methods> Refactory.Browser.Navigator <category>initialize-release</category>
initialize super initialize. state := self navigatorStateClass new. state nameSpace: self defaultNameSpace. self initializeParts. menus := Dictionary new. showOnlyFiltered := ShowOnlyFiltered. self inheritToType: #class
initializeParts parts notNil ifTrue: [parts do: [:each | each release]]. parts := OrderedCollection new. partsDictionary := Dictionary new
release parts do: [:each | each release]. super release
</methods> <methods> Refactory.Browser.Navigator <category>aspects</category>
ClassAndMethodTabNavigatorPart ^partsDictionary at: #ClassAndMethodTabNavigatorPart ifAbsentPut: [parts add: (ClassAndMethodTabNavigatorPart onNavigator: self)]
ClassAndObjectNavigatorPart ^partsDictionary at: #ClassAndObjectNavigatorPart ifAbsentPut: [parts add: (ClassAndObjectNavigatorPart onNavigator: self)]
ClassNavigatorPart ^partsDictionary at: #ClassNavigatorPart ifAbsentPut: [parts add: (ClassNavigatorPart onNavigator: self)]
CodeComponentTabNavigatorPart ^partsDictionary at: #CodeComponentTabNavigatorPart ifAbsentPut: [parts add: (CodeComponentTabNavigatorPart onNavigator: self)]
methodName | selector | selector := self selector. ^selector isNil ifTrue: ['No Selector'] ifFalse: [self menuNameFor: selector]
MethodNavigatorPart ^partsDictionary at: #MethodNavigatorPart ifAbsentPut: [parts add: (MethodNavigatorPart onNavigator: self)]
NameSpaceItemTabNavigatorPart ^partsDictionary at: #NameSpaceItemTabNavigatorPart ifAbsentPut: [parts add: ((NameSpaceItemTabNavigatorPart onNavigator: self) showProtocols: true; yourself)]
</methods> <methods> Refactory.Browser.Navigator <category>accessing-class</category>
classesAndNameSpaces ^state classesAndNameSpaces
classOrNameSpace ^state classOrNameSpace
isBindingSelected ^self selectedBinding notNil
isClassOverridden ^self classOrNameSpace notNil and: [Override isOverriddenClassOrNameSpace: self classOrNameSpace]
isClassSelected ^self selectedClass notNil
isGlobalSelected ^self selectedClass notNil or: [self selectedNameSpace notNil]
nonMetaClass ^state nonMetaClass
nonMetaClasses ^state nonMetaClasses
objectName ^state objectName
objectNames ^state objectNames
objectNamesOrderedForRemoval ^state objectNamesOrderedForRemoval
selectClass: aClass state clearClassDependentFields; selectedClass: aClass. self updatePartsWith: state
selectedBinding ^state selectedBinding
selectedBindings ^state selectedBindings
selectedClass ^state selectedClass
selectedClasses ^state selectedClasses
selectedGlobals ^state selectedGlobals
selectedNameSpace ^state selectedNameSpace
</methods> <methods> Refactory.Browser.Navigator <category>private</category>
find: aString | name | aString isEmpty ifTrue: [^self]. aString first = $# ifTrue: [^self findMethod: (aString copyFrom: 2 to: aString size)]. (aString includes: $:) ifTrue: [^self findMethod: aString]. name := self findClass: aString ifNotFound: [^(self confirm: (#DidNotFindMatchingVariable << #dialogs >> 'Did not find any classes, name spaces, or shared variables.<n>Do you wish to look for matching methods?') expandMacros) ifTrue: [self findMethod: aString]]. name isNil ifTrue: [^self]. self setBinding: name bindingOrNil
findMethod: aSelector | env items method | env := self environment implementorsMatching: '*' , aSelector trimBlanks , '*'. items := OrderedCollection new. env classesAndSelectorsDo: [:class :selector | items add: (class fullName , '>>' , selector) -> (Array with: class with: selector)]. items isEmpty ifTrue: [^self warn: (#NoMethodsMatching1sFound << #browser >> 'No methods matching "<1s>" found' expandMacrosWith: aSelector)]. items := items asSortedCollection: [:a :b | a key < b key]. method := (items size = 1 ifTrue: [items first] ifFalse: [self choose: #GoToMethodC << #browser >> 'Go to method:' fromList: items values: items lines: 10 cancel: [^nil]]) value. method isNil ifTrue: [^self]. self selectClass: method first; setSelector: method last
navigatorStateClass ^NavigatorState
partNamed: aSymbol ^partsDictionary at: aSymbol
parts ^parts
partsDictionary ^partsDictionary
sortedPundleList: aCollection ^aCollection asSortedCollection: [:a :b | (a isBundle xor: b isBundle) ifTrue: [a isBundle] ifFalse: [a name < b name]]
subcanvases ^(OrderedCollection withAll: super subcanvases) addAll: parts; yourself
updatePartsWith: aNavigatorState parts do: [:each | each selectState: aNavigatorState]
</methods> <methods> Refactory.Browser.Navigator <category>changing</category>
changedPart: aPart | index visibleParts | visibleParts := parts. index := visibleParts indexOf: aPart. index + 1 to: visibleParts size do: [:i | (visibleParts at: i) updateWithState: state]. self changed
</methods> <methods> Refactory.Browser.Navigator <category>private-protocol</category>
findMethodAndSelectAlphabetic | chosenSelector | self changeRequest ifFalse: [^self]. chosenSelector := (IncrementalSearchDialog forSelectionWithSearch: [:pattern | pattern isEmpty ifTrue: [self inheritedSelectors asSortedCollection] ifFalse: [(self inheritedSelectors select: [:each | pattern , '*' match: each]) asSortedCollection]]) windowLabel: (#FindMethod << #browser >> 'Find Method'); firstLabel: (#FilterC << #browser >> 'Filter:'); secondLabel: #MethodsC << #browser >> 'Methods:'; select. chosenSelector isNil ifTrue: [^self]. self setSelector: chosenSelector. LastProtocol := self protocol
inheritedSelectors | selectors currentClass inheritToClass | selectors := Set new. currentClass := self selectedClass. inheritToClass := self inheritToClass superclass. [currentClass notNil and: [currentClass ~= inheritToClass]] whileTrue: [selectors addAll: (self environment selectorsForClass: currentClass). currentClass := currentClass superclass]. ^selectors
setSelector: aSelector aSelector isNil ifTrue: [^self]. state type = #sharedVariable ifTrue: [state type: #instance]. state protocols: #(); definitions: #(); selector: aSelector. self updatePartsWith: state; changed
</methods> <methods> Refactory.Browser.Navigator <category>accessing-instance variables</category>
classInstanceVariable ^state classInstanceVariable
classInstanceVariables ^state classInstanceVariables
instanceVariable ^state instanceVariable
instanceVariables ^state instanceVariables
</methods> <methods> Refactory.Browser.Navigator <category>testing</category>
isClassContainerEnvironment ^self environment isClassContainer
isGlobalEnvironment ^self environment isSystem
isLocalEnvironment ^self isGlobalEnvironment not
isSelectorEnvironment ^self environment isSelector
</methods> <methods> Refactory.Browser.Navigator class <category>accessing</category>
defaultNameSpace ^DefaultNameSpace isNil ifTrue: [Smalltalk] ifFalse: [DefaultNameSpace valueOrDo: [Smalltalk]]
defaultNameSpaceString ^self defaultNameSpace fullName
defaultNameSpaceString: aString ^[DefaultNameSpace := aString asQualifiedReference] on: Error do: [:ex | ex return: nil]
showOnlyFiltered ^ShowOnlyFiltered
showOnlyFiltered: aBoolean ShowOnlyFiltered := aBoolean
</methods> <methods> Refactory.Browser.Navigator class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.RBCheckedCommand <category>testing</category>
isCheckedActionSpecification ^true
</methods> <methods> Refactory.Browser.RBMultiSelectionView <category>private</category>
retractSelectionIndex: anIndex self selectionChannel removeDependent: self. super retractSelectionIndex: anIndex. self selectionChannel addDependent: self
useSweepSelectionIndex: anIndex | save list newList | lastSelectionIndex = self zeroIndex ifTrue: [self retractAllSelections. ^self]. save := lastSelectionIndex. list := self selections copy. newList := save to: anIndex by: (save < anIndex ifTrue: [1] ifFalse: [-1]). selectionIndex := self zeroIndex. list do: [:i | (newList includes: i) ifFalse: [selections remove: i ifAbsent: []. self invalidateElementIndex: i]]. newList do: [:i | (list includes: i) ifFalse: [selections add: i. self invalidateElementIndex: i]]. lastSelectionIndex := save. self selectionChannel value: selections
</methods> <methods> Refactory.Browser.RBMultiSelectionView <category>updating</category>
updateSelectionChannel | indx range | range := self visibleIntervalForBounds: self bounds. range notEmpty ifTrue: [indx := selectionChannel value detect: [:each | true] ifNone: [self zeroIndex]. ((selectionChannel value anySatisfy: [:each | each between: range first and: range last]) or: [indx = self zeroIndex]) ifFalse: [self makeVisible: indx]]. super updateSelectionChannel
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>private</category>
buildHierarchyPackageSubcanvas | state | state := navigator state. self installSubcanvas: #packageHierarchyWindowSpec using: self. self selectStateForComponents: state
buildHierarchyParcelSubcanvas | state | state := navigator state. self installSubcanvas: #parcelHierarchyWindowSpec using: self. self selectStateForComponents: state
buildPackageSubcanvas | state | state := navigator state. self installSubcanvas: #packageWindowSpec using: self. self selectStateForComponents: state
buildParcelSubcanvas | state | state := navigator state. self installSubcanvas: #parcelWindowSpec using: self. self selectStateForComponents: state
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>accessing</category>
classes | classes | classes := self componentNamed: #classes. classes isNil ifTrue: [classes := ClassNavigatorPart new. navigator notNil ifTrue: [classes navigator: navigator]. self componentNamed: #classes put: classes]. ^classes
hierarchyClasses | hierarchyClasses | hierarchyClasses := self componentNamed: #hierarchyClasses. hierarchyClasses isNil ifTrue: [hierarchyClasses := HierarchyClassNavigatorPart new. navigator notNil ifTrue: [hierarchyClasses navigator: navigator]. self componentNamed: #hierarchyClasses put: hierarchyClasses]. ^hierarchyClasses
hierarchyPackages | hierarchyPackages | hierarchyPackages := self componentNamed: #hierarchyPackages. hierarchyPackages isNil ifTrue: [hierarchyPackages := HierarchyPundleNavigatorPart new. navigator notNil ifTrue: [hierarchyPackages navigator: navigator]. self componentNamed: #hierarchyPackages put: hierarchyPackages]. ^hierarchyPackages
hierarchyParcels | hierarchyParcels | hierarchyParcels := self componentNamed: #hierarchyParcels. hierarchyParcels isNil ifTrue: [hierarchyParcels := HierarchyParcelNavigatorPart new. navigator notNil ifTrue: [hierarchyParcels navigator: navigator]. self componentNamed: #hierarchyParcels put: hierarchyParcels]. ^hierarchyParcels
packages | packages | packages := self componentNamed: #packages. packages isNil ifTrue: [packages := PundleNavigatorPart new. navigator notNil ifTrue: [packages navigator: navigator]. self componentNamed: #packages put: packages]. ^packages
parcels | parcels | parcels := self componentNamed: #parcels. parcels isNil ifTrue: [parcels := ParcelNavigatorPart new. navigator notNil ifTrue: [parcels navigator: navigator]. self componentNamed: #parcels put: parcels]. ^parcels
refreshPackageList "IF I have an active package list, refresh it. Triggered as a result of publish activity." (self componentNamed: #packages) ifNotNil: [:pundleNavigatorPart | pundleNavigatorPart refreshListDisplay]
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>testing</category>
isCategoryAndClass: arg1 "Dummy method template. This was installed by the debugger define method command." ^false
isPackageAndClass: aNavigatorState ^(self isPackage: aNavigatorState) and: [(self hasNameSpace: aNavigatorState) not]
isParcelAndClass: aNavigatorState ^(self isParcel: aNavigatorState) and: [(self hasNameSpace: aNavigatorState) not]
isSafeToSwitchWithoutUpdate ^navigator selectedClass notNil and: [navigator pundles allSatisfy: [:each | each isPackage]]
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>navigator accessing</category>
beHierarchy | current new | current := self selection. new := self list detect: [:each | each identifier = 'Hierarchy'] ifNone: [^self]. new = current ifTrue: [^self]. self select: new. self installSubcanvas
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>updating</category>
update: anAspectSymbol with: aParameter from: aSender (aSender == self components last and: [anAspectSymbol == #navigatorState]) ifTrue: [self updateTabListWith: aParameter]. ^super update: anAspectSymbol with: aParameter from: aSender
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>changing</category>
changedTab | canSwitchWithoutUpdates | canSwitchWithoutUpdates := self isSafeToSwitchWithoutUpdate. super changedTab. canSwitchWithoutUpdates ifFalse: [self changed]
changeRequest ^self isSafeToSwitchWithoutUpdate ifTrue: [true] ifFalse: [super changeRequest]
installSubcanvas "Ugly but somehow we need to let the code model know we switched our tabs." super installSubcanvas. navigator changed: #updateState
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>updating widgets</category>
selectionForState: aNavigatorState ^aNavigatorState propertyAt: #codeComponentTab ifAbsent: [nil]
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState super fillInState: aNavigatorState. aNavigatorState propertyAt: #codeComponentTab put: self selection
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart <category>As yet unclassified</category>
isCategory: arg1 "Dummy method template. This was installed by the debugger define method command." ^false
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart class <category>accessing</category>
defaultTabDescriptions | descriptions | descriptions := OrderedCollection new. descriptions add: (TabPartDescription named: #Package << #labels >> 'Package' buildWith: #buildPackageSubcanvas match: #alwaysEnabled: enabled: #isPackage:); add: (TabPartDescription named: #Hierarchy << #labels >> 'Hierarchy' buildWith: #buildHierarchyPackageSubcanvas match: #onlyClasses: enabled: #isPackageAndClass:); add: (TabPartDescription named: #Parcel << #labels >> 'Parcel' buildWith: #buildParcelSubcanvas match: #alwaysEnabled: enabled: #isParcel:); add: (TabPartDescription named: #Hierarchy << #labels >> 'Hierarchy' buildWith: #buildHierarchyParcelSubcanvas match: #onlyClasses: enabled: #isParcelAndClass:). ^descriptions
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ProtocolSortOrder <category>printing</category>
displayString ^name asString
</methods> <methods> Refactory.Browser.ProtocolSortOrder <category>initialize-release</category>
named: aString beforeStrings: beforeStrings afterStrings: afterStrings name := aString. sortBefore := beforeStrings. sortAfter := afterStrings
</methods> <methods> Refactory.Browser.ProtocolSortOrder <category>comparing</category>
= anObject ^self class = anObject class and: [self name = anObject name]
hash ^name hash
is: aString before: bString | aIndex bIndex | aIndex := self indexOf: aString. bIndex := self indexOf: bString. ^aIndex < bIndex or: [aIndex = bIndex and: [aString < bString]]
</methods> <methods> Refactory.Browser.ProtocolSortOrder <category>private</category>
indexOf: aString 1 to: sortBefore size do: [:i | ((sortBefore at: i) match: aString) ifTrue: [^i - sortBefore size - 1]]. 1 to: sortAfter size do: [:i | ((sortAfter at: i) match: aString) ifTrue: [^i]]. ^0
</methods> <methods> Refactory.Browser.ProtocolSortOrder <category>accessing</category>
identifier ^(name respondsTo: #key) ifTrue: [name key] ifFalse: [name]
name ^name
</methods> <methods> Refactory.Browser.ProtocolSortOrder class <category>instance creation</category>
alphabetical ^self named: (#Alphabetical << #browser >> 'Alphabetical') beforeStrings: #() afterStrings: #()
named: aString beforeStrings: beforeStrings afterStrings: afterStrings ^(self new) named: aString beforeStrings: beforeStrings afterStrings: afterStrings; yourself
traditional ^self named: (#Traditional << #browser >> 'Traditional') beforeStrings: #('*initial*' 'instance creation') afterStrings: #('private*' 'pvt*')
</methods> <methods> Store.BundleSpecEditor <category>private</category>
addCheckMarkToImage: anImage | cp | cp := CompositePart new. cp add: self checkMark at: 0 @ 0. cp add: anImage at: self checkMarkWidth @ 0. ^cp
bundleNameChanged self disturb.
bundleNamed: aString ^Registry bundleNamed: aString
checkMark ^LabelAndIcon checkMark
checkMarkGap ^4
checkMarkWidth ^self checkMark width + self checkMarkGap
createBundle | newBundleModel | newBundleModel := BundleModel named: self bundleName value trimBlanks. newBundleModel containedItems: self bundleContents list. parentBundleHolder value ifNotNil: [:parentBundle | parentBundle addItem: newBundleModel]
disableBundleNameEdits (self builder componentAt: #bundleName) widget isEnabled: false
disturb disturbed := true.
isPundleAvailableAtIndex: anIndex ^pundleAvailability at: anIndex
labelWithString: aString icon: anImage disabled: isDisabled reversed: isReversed checked: isChecked inView: aSelectionView "If isOffset is true, the returned LabalAndIcon will be offset so that the icon will align with the icons of other labels preceeded by check marks." | label disabledText | label := LabelAndIcon with: aString attributes: aSelectionView textStyle. isDisabled ifTrue: [disabledText := aString asText. disabledText emphasizeAllWith: (Array with: #color -> aSelectionView inactiveForegroundColor with: #italic). label text: disabledText]. label icon: (isChecked ifTrue: [self addCheckMarkToImage: anImage] ifFalse: [anImage]). isReversed ifTrue: [label := ReversingWrapper on: label. label reverse setValue: true]. ^label
leafItems | pkgs | pkgs := OrderedCollection new. self bundleContents list do: [ :pundle | pkgs addAll: pundle leafItems ]. ^pkgs
modifyBundle bundle containedItems ~= self bundleContents list ifTrue: [bundle containedItems: self bundleContents list]
nameForBundle: aBundle ^aBundle name
okSelection: aController "Don't let the selection change if the targeted item is disabled" ^self isPundleAvailableAtIndex: aController view targetIndex
pundleAdded: aPundle "update the lists after a pundle has been added to the image" | newPundleList index | newPundleList := Registry allPundlesSorted. index := newPundleList indexOf: aPundle. "insert an element into the pundleAvailability array" pundleAvailability := pundleAvailability copyReplaceFrom: index to: index - 1 with: (Array with: true). self availablePundles list add: aPundle beforeIndex: index. self availablePundles selectionIndexes: (self availablePundles selectionIndexes collect: [:i | i >= index ifTrue: [i + 1] ifFalse: [i]])
pundleAtIndex: index isAvailable: aBoolean pundleAvailability at: index put: aBoolean.
pundleRemoved: aPundle "update the lists after a pundle has been removed from the image" | index removed | "update available pundles" index := self availablePundles list indexOf: aPundle. pundleAvailability := pundleAvailability "remove index'th element from array" copyReplaceFrom: index to: index with: Array new. self availablePundles list remove: aPundle. self availablePundles selectionIndexes remove: index ifAbsent: [nil]. self availablePundles selectionIndexes: (self availablePundles selectionIndexes collect: [:i | i >= index ifTrue: [i - 1] ifFalse: [i]]). "update bundle contents" removed := self bundleContents list remove: aPundle ifAbsent: [nil]. removed isNil ifFalse: [self bundleContents selection: nil].
undisturb disturbed := false.
</methods> <methods> Store.BundleSpecEditor <category>updating</category>
update: anAspect with: aParameter super update: anAspect with: aParameter. anAspect == #addedPundle ifTrue: [self pundleAdded: aParameter]. anAspect == #removedPundle ifTrue: [self pundleRemoved: aParameter]
</methods> <methods> Store.BundleSpecEditor <category>accessing</category>
availableBundles ^(SortedCollection withAll: Registry allBundles sortBlock: [:a :b | a name < b name]) asValue
bundle ^bundle
bundle: bundleModel bundle := bundleModel. self bundleName value: bundle name. (self builder isNil not and: [bundle isNil not]) ifTrue: [self disableBundleNameEdits]. bundle containedItems do: [:aPundleModel | self pundleAtIndex: (self availablePundles list indexOf: aPundleModel) isAvailable: false]. self pundleAtIndex: (self availablePundles list indexOf: bundle) isAvailable: false. self builder isNil ifFalse: [(self builder componentAt: #availablePundlesView) invalidate]. self bundleContents list: bundle containedItems.
parentBundle ^parentBundleHolder value
parentBundle: anObject parentBundleHolder value: anObject
parentBundleHolder ^parentBundleHolder
</methods> <methods> Store.BundleSpecEditor <category>events</category>
noticeOfWindowClose: aWindow "The containing window is being closed -- release." self release
requestForWindowClose super requestForWindowClose. ^disturbed not or: [Dialog confirm: (#BundleSpecAltered << #packages >> 'The bundle specification has been altered. Do you wish to discard the changes?')]
</methods> <methods> Store.BundleSpecEditor <category>aspects</category>
availablePundles "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^availablePundles isNil ifTrue: [availablePundles := MultiSelectionInList new] ifFalse: [availablePundles]
bundleContents "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^bundleContents isNil ifTrue: [bundleContents := SelectionInList new] ifFalse: [bundleContents]
bundleName "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^bundleName isNil ifTrue: [bundleName := String new asValue] ifFalse: [bundleName]
</methods> <methods> Store.BundleSpecEditor <category>list visuals</category>
initializeVisualBlocksForBundleContentView | contentView | contentView := (self builder componentAt: #bundleContentsView) widget. contentView selectedVisualBlock: [:aView :index | self makeBundleContentListItemForIndex: index inView: aView selected: true]. contentView visualBlock: [:aView :index | self makeBundleContentListItemForIndex: index inView: aView selected: false]
initializeVisualBlocksForPundleView | pundleView | pundleView := (self builder componentAt: #availablePundlesView) widget. pundleView selectedVisualBlock: [:aView :index | self makePundleListItemForIndex: index inView: aView selected: true]. pundleView visualBlock: [:aView :index | self makePundleListItemForIndex: index inView: aView selected: false]
makeBundleContentListItemForIndex: index inView: aSelectionView selected: isSelected | label pundle | pundle := self bundleContents list at: index. label := self labelWithString: pundle name icon: (self class iconForPundle: pundle) disabled: false reversed: isSelected checked: false inView: aSelectionView. ^BoundedWrapper on: label.
makePundleListItemForIndex: index inView: aSelectionView selected: isSelected | label disable pundle check | disable := (self isPundleAvailableAtIndex: index) not. pundle := self availablePundles list at: index. check := isSelected. label := self labelWithString: pundle name icon: (self class iconForPundle: pundle) disabled: disable reversed: check checked: false inView: aSelectionView. ^BoundedWrapper on: label
</methods> <methods> Store.BundleSpecEditor <category>initialize-release</category>
initialize super initialize. disturbed := false. self availablePundles list: (Registry allPundlesSorted asList). "make the selectionInList use an OrderedCollection instead of a Set for storing the selections since we want to remember the selection order." self availablePundles selectionIndexes: OrderedCollection new. pundleAvailability := Array new: self availablePundles list size withAll: true. Registry addDependent: self. parentBundleHolder := nil asValue
release super release. Registry removeDependent: self.
</methods> <methods> Store.BundleSpecEditor <category>actions</category>
accept "Accept has been selected- answer self to cancel." ( self validateName "and: [ self validateOrder ] " ) ifFalse: [ ^self ]. bundle == nil ifTrue: [ self createBundle ] ifFalse: [ self modifyBundle ]. self undisturb. self closeRequest
addToBundleContents | selectionIndexes | selectionIndexes := self availablePundles selectionIndexes. selectionIndexes isEmpty ifTrue: [^self]. selectionIndexes do: [:i | self bundleContents list add: (self availablePundles list at: i). self pundleAtIndex: i isAvailable: false]. self bundleContents selectionIndex: self bundleContents list size. "Deselect all items in available pundle list view. Be sure that the selection in list continues to use an OrderedCollection (rather than a Set) to store the selections since we want to remember selection order." self availablePundles selectionIndexes: OrderedCollection new.
cancel self undisturb. self closeRequest
moveBundleItemDown | selection currentPosition bundleContentList nextItem | bundleContentList := self bundleContents list. currentPosition := self bundleContents selectionIndex. (currentPosition == self bundleContents zeroIndex or: [currentPosition == bundleContentList size]) ifFalse: [ "swap the selected item with the next item in the list" selection := self bundleContents selection. nextItem := bundleContentList at: currentPosition + 1. bundleContentList at: currentPosition + 1 put: selection. bundleContentList at: currentPosition put: nextItem. self bundleContents selection: selection.]
moveBundleItemUp | selection currentPosition bundleContentList previousItem | bundleContentList := self bundleContents list. currentPosition := self bundleContents selectionIndex. (currentPosition == self bundleContents zeroIndex or: [currentPosition == 1]) ifFalse: [ "swap the selected item with the previous item in the list" selection := self bundleContents selection. previousItem := bundleContentList at: currentPosition - 1. bundleContentList at: currentPosition - 1 put: selection. bundleContentList at: currentPosition put: previousItem. self bundleContents selection: selection.]
removeBundleItem | itemToRemove availablePundleIndex | (itemToRemove := self bundleContents selection) isNil ifFalse: [ availablePundleIndex := self availablePundles list indexOf: itemToRemove. self pundleAtIndex: availablePundleIndex isAvailable: true. (self builder componentAt: #availablePundlesView) widget updateAt: availablePundleIndex. self bundleContents selection: nil. self bundleContents list remove: itemToRemove.]
validateLoadOrder | errs | Dialog warn: ( ( errs := bundle validateLoadOrder: self bundleContents list) isEmpty ifTrue: [ (#LoadOrderValidated << #packages >> 'Load order validated.') ] ifFalse: [ errs ] )
</methods> <methods> Store.BundleSpecEditor <category>interface opening</category>
postBuildWith: aBuilder self bundle isNil ifFalse: [self disableBundleNameEdits]. self initializeVisualBlocksForPundleView. self initializeVisualBlocksForBundleContentView.
</methods> <methods> Store.BundleSpecEditor <category>private-validation</category>
validateName "Answer true if the bundle name is ok. Display warning and answer false if not." self bundleName value isEmpty ifTrue: [ Dialog warn: (#EnterBundleNameBeforeAccept << #packages >> 'Enter a bundle name before accepting.'). ^false ]. ^bundle == nil ifFalse: [ true ] ifTrue: [ ( PackageModel validateName: self bundleName value ) ifFalse: [ Dialog warn: (#BundleHasIllegalCharacters << #packages >> 'Bundle name "<1s>" can not contain any of these characters: <2s>.<n>Use a different bundle name.' expandMacrosWith: self bundleName value with: PackageModel illegalCharacters). ^false ]. ( Registry isBundleLoaded: self bundleName value ) not ifTrue: [ true ] ifFalse: [ Dialog warn: ((#BundleNameConflict << #packages >> 'The name <1s> is already in use. Use another bundle name.') expandMacrosWith: self bundleName value). false ]. ]
validateOrder "Answer true bundle contents is ok. Display warning and answer false if not." | errs | errs := bundle validateLoadOrder. ^errs isEmpty ifTrue: [ true ] ifFalse: [ errs := ((#BundleCannotBeLoaded << #packages >> '<1s><nn>WARNING: the Bundle cannot be loaded. Continue anyway?') expandMacrosWith: errs). Dialog confirm: errs. ].
</methods> <methods> Store.BundleSpecEditor class <category>instance creation</category>
createNewIn: aBundle BundleSpecEditor new parentBundle: aBundle; openInterface: #windowSpecWithEnclosingBundle
openOnBundle: aBundle BundleSpecEditor new bundle: aBundle; open.
</methods> <methods> Store.BundleSpecEditor class <category>private</category>
bundleImageModified ^ListIconLibrary visualFor: #modifiedBundle
bundleImageUnmodified ^ListIconLibrary visualFor: #bundle
dbBundleImage ^ListIconLibrary visualFor: #bundle
dbPackageImage ^ListIconLibrary visualFor: #package
iconForPundle: aPundle | modified loaded | modified := aPundle hasBeenModified. loaded := aPundle isLoaded. ^aPundle isBundle ifTrue: [loaded ifTrue: [modified ifTrue: [self bundleImageModified] ifFalse: [self bundleImageUnmodified]] ifFalse: [self dbBundleImage]] ifFalse: [loaded ifTrue: [modified ifTrue: [self packageImageModified] ifFalse: [self packageImageUnmodified]] ifFalse: [self dbPackageImage]]
packageImageModified ^ListIconLibrary visualFor: #modifiedPackage
packageImageUnmodified ^ListIconLibrary visualFor: #package
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>actions</category>
checkAllProtocols | protocolMatch | protocolMatch := self request: (#SelectProtocolsMatching << #browser >> 'Select protocols matching:'). protocolMatch isEmpty ifTrue: [^self]. self updateDisplayAfter: [self showWaitCursorWhile: [self protocolsForClass do: [:each | (protocolMatch match: each) ifTrue: [self checkProtocol: each]]]]
checkAllSelectors | selectorMatch | selectorMatch := self request: (#SelectSelectorsMatching << #browser >> 'Select selectors matching:'). selectorMatch isEmpty ifTrue: [^self]. self updateDisplayAfter: [self showWaitCursorWhile: [self selectorsForProtocols do: [:each | (selectorMatch match: each selector) ifTrue: [selectedEnvironment addClass: self selectedClass selector: each selector]]]]
checkChangeSet self updateDisplayAfter: [self showWaitCursorWhile: [ChangeSet current changedClasses do: [:each | each isMeta ifTrue: [selectedEnvironment addClass: each] ifFalse: [selectedEnvironment addClass: each; addClass: each class]]]]
checkClass self updateDisplayAfter: [self nonMetaClasses do: [:each | selectedEnvironment addClass: each; addClass: each class]]
checkImplementors self updateDisplayAfter: [environment classesDo: [:class | self selectors do: [:selector | (environment includesSelector: selector in: class) ifTrue: [selectedEnvironment addClass: class selector: selector]]]]
checkProtocol self updateDisplayAfter: [| class | class := self selectedClass. self protocols do: [:each | (environment selectorsFor: each in: class) do: [:sel | selectedEnvironment addClass: class selector: sel]]]
checkSelector self updateDisplayAfter: [| class | class := self selectedClass. self selectors do: [:each | selectedEnvironment addClass: class selector: each]]
checkSenders self updateDisplayAfter: [environment classesDo: [:class | self selectors do: [:selector | (environment selectorsForClass: class) do: [:each | ((class compiledMethodAt: each) refersToLiteral: selector) ifTrue: [selectedEnvironment addClass: class selector: each]]]]]
checkSubclasses self updateDisplayAfter: [self nonMetaClasses do: [:each | each allSubclasses do: [:sub | selectedEnvironment addClass: sub; addClass: sub class]]]
checkSuperclasses self updateDisplayAfter: [self nonMetaClasses do: [:class | class allSuperclasses , class class allSuperclasses do: [:each | selectedEnvironment addClass: each]]]
uncheckAllProtocols | protocolMatch | protocolMatch := self request: (#DeselectProtocolsMatching << #browser >> 'Deselect protocols matching:'). protocolMatch isEmpty ifTrue: [^self]. self updateDisplayAfter: [self showWaitCursorWhile: [self protocolsForClass do: [:each | (protocolMatch match: each) ifTrue: [self uncheckProtocol: each]]]]
uncheckAllSelectors | selectorMatch | selectorMatch := self request: (#DeselectSelectorsMatching << #browser >> 'Deselect selectors matching:'). selectorMatch isEmpty ifTrue: [^self]. self updateDisplayAfter: [self showWaitCursorWhile: [self selectorsForProtocols do: [:each | (selectorMatch match: each selector) ifTrue: [selectedEnvironment removeClass: self selectedClass selector: each selector]]]]
uncheckClass self updateDisplayAfter: [self nonMetaClasses do: [:each | selectedEnvironment removeClass: each; removeClass: each class]]
uncheckImplementors self updateDisplayAfter: [environment classesDo: [:class | self selectors do: [:selector | (environment includesSelector: selector in: class) ifTrue: [selectedEnvironment removeClass: class selector: selector]]]]
uncheckProtocol self updateDisplayAfter: [| class | class := self selectedClass. self protocols do: [:each | (environment selectorsFor: each in: class) do: [:sel | selectedEnvironment removeClass: class selector: sel]]]
uncheckSelector self updateDisplayAfter: [| class | class := self selectedClass. self selectors do: [:each | selectedEnvironment removeClass: class selector: each]]
uncheckSenders self updateDisplayAfter: [environment classesDo: [:class | self selectors do: [:selector | (environment selectorsForClass: class) do: [:each | ((class compiledMethodAt: each) refersToLiteral: selector) ifTrue: [selectedEnvironment removeClass: class selector: each]]]]]
uncheckSubclasses self updateDisplayAfter: [self nonMetaClasses do: [:class | class allSubclasses do: [:each | selectedEnvironment removeClass: each; removeClass: each class]]]
uncheckSuperclasses self updateDisplayAfter: [self nonMetaClasses do: [:class | class allSuperclasses , class class allSuperclasses do: [:each | selectedEnvironment removeClass: each]]]
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>private</category>
allCategories ^self CategoryNavigatorPart list
checkClass: aName | class | class := self classForName: aName. class isNil ifTrue: [^self]. selectedEnvironment addClass: class; addClass: class class
checkProtocol: aProtocol | class | class := self selectedClass. (environment selectorsFor: aProtocol in: class) do: [:each | selectedEnvironment addClass: class selector: each]
classesForCategories ^self ClassNavigatorPart list
protocolsForClass ^self SelectorProtocolNavigatorPart list
selectorsForProtocols ^self SelectorNavigatorPart list
uncheckClass: aName | class | class := self classForName: aName. class isNil ifTrue: [^self]. selectedEnvironment removeClass: class; removeClass: class class
uncheckProtocol: aProtocol | class | class := self selectedClass. (environment selectorsFor: aProtocol in: class) do: [:each | selectedEnvironment removeClass: class selector: each]
updateDisplayAfter: aBlock aBlock value. builder isNil ifTrue: [^self]. #(#categoryList #classList #protocolList #selectorList) do: [:each | self invalidateComponent: each]
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>initialize-release</category>
initialize super initialize. environment := BrowserEnvironment new. selectedEnvironment := SelectorEnvironment new
selectedEnvironment: anEnvironment self updateDisplayAfter: [selectedEnvironment := anEnvironment]
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>private-labels</category>
categoryLabelForView: aView andIndex: anIndex ^Label with: (aView displayStringAt: anIndex) attributes: aView textStyle offset: 16 @ 0
classLabelForView: aView andIndex: anIndex | binding included name | binding := (aView sequence at: anIndex) fullName asQualifiedReference bindingOrNil. name := binding notNil ifTrue: [binding key] ifFalse: [(aView sequence at: anIndex) simpleName]. included := false. (binding notNil and: [binding isForClass]) ifTrue: [included := self selectedEnvironment includesClass: (self isMeta ifTrue: [binding value class] ifFalse: [binding value])]. ^included ifTrue: [(LabelAndIcon with: name attributes: aView textStyle) beCheckMark] ifFalse: [Label with: name attributes: aView textStyle offset: 16 @ 0]
protocolLabelForView: view andIndex: index ^(self selectedEnvironment includesProtocol: (view sequence at: index) in: self selectedClass) ifTrue: [(LabelAndIcon with: (view displayStringAt: index) attributes: view textStyle) beCheckMark] ifFalse: [Label with: (view displayStringAt: index) attributes: view textStyle offset: 16 @ 0]
selectorLabelForView: view andIndex: index | methodDefinition | methodDefinition := view sequence at: index. ^(self selectedEnvironment includesSelector: methodDefinition selector in: methodDefinition implementingClass) ifTrue: [(LabelAndIcon with: (view displayStringAt: index) attributes: view textStyle) beCheckMark] ifFalse: [Label with: (view displayStringAt: index) attributes: view textStyle offset: 16 @ 0]
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>accessing</category>
selectedEnvironment ^selectedEnvironment
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>aspects</category>
ClassNavigatorPart ^partsDictionary at: #ClassNavigatorPart ifAbsentPut: [parts add: ((ClassNavigatorPart onNavigator: self) visualBlock: [:np :view :index | self classLabelForView: view andIndex: index]; yourself)]
MetaNavigatorPart ^partsDictionary at: #MetaNavigatorPart ifAbsentPut: [parts add: (MetaNavigatorPart onNavigator: self)]
SelectorNavigatorPart ^partsDictionary at: #SelectorNavigatorPart ifAbsentPut: [parts add: ((SelectorNavigatorPart onNavigator: self) visualBlock: [:np :view :index | self selectorLabelForView: view andIndex: index]; yourself)]
SelectorProtocolNavigatorPart ^partsDictionary at: #SelectorProtocolNavigatorPart ifAbsentPut: [parts add: ((SelectorProtocolNavigatorPart onNavigator: self) visualBlock: [:np :view :index | self protocolLabelForView: view andIndex: index]; yourself)]
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>menus</category>
menu | menu | menu := Menu new. self windowMenuItems do: [:each | menu addItem: ((MenuItem labeled: each key) submenu: each value)]. ^menu
windowMenuItems | items | items := OrderedCollection new. items add: (#Ca_tegory << #browser >> 'Ca&tegory') -> (self menuNamed: #categoryMenu); add: (#_Class << #browser >> '&Class') -> (self menuNamed: #classMenu). (partsDictionary includesKey: #SelectorProtocolNavigatorPart) ifTrue: [items add: (#_Protocol << #browser >> '&Protocol') -> (self menuNamed: #protocolMenu); add: (#_Selector << #browser >> '&Selector') -> (self menuNamed: #selectorMenu)]. ^items
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>accessing-class</category>
classForName: className | class | className isNil ifTrue: [^nil]. class := (className includes: $.) ifTrue: [className asQualifiedReference valueOrDo: [nil]] ifFalse: [self nameSpace at: className ifAbsent: [nil]]. class isBehavior ifFalse: [^nil]. ^class
</methods> <methods> Refactory.Browser.EnvironmentEditor <category>interface closing</category>
noticeOfWindowClose: aWindow self release. ^super noticeOfWindowClose: aWindow
</methods> <methods> Refactory.Browser.EnvironmentEditor class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>private</category>
displayTextFor: aMethodDefinition ^aMethodDefinition fullDisplayText
fillInListFor: aNavigatorState | defs | defs := navigator environment methodDefinitions. (defs size = self list size and: [defs size > 100]) ifTrue: [^self list]. "Optimization hack -- sorting the defs is really slow." ^defs
fillInStateBasedOnSelection: aNavigatorState self selection ifNotNil: [:selection | aNavigatorState classOrNameSpace: selection classOrNameSpace; protocol: self protocolHolder value]
selectDefinitions: aNavigatorState | defs class | defs := aNavigatorState definitions. defs notEmpty ifTrue: [^self select: defs]. class := aNavigatorState classOrNameSpace. class isNil ifTrue: [^self select: #()]. aNavigatorState isMeta ifTrue: [class := class class]. defs := self list select: [:each | each classOrNameSpace = class]. self select: defs
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState self fillInListWith: aNavigatorState. self selectDefinitions: aNavigatorState
updateWithState: aNavigatorState self fillInListWith: aNavigatorState. self selectDefinitions: aNavigatorState
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>initialize-release</category>
initialize super initialize. self protocolHolder value: nil
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState self fillInStateBasedOnSelection: aNavigatorState. super fillInState: aNavigatorState
initiallyOpened: aNavigatorState super initiallyOpened: aNavigatorState. self list isEmpty ifTrue: [^self]. self selection notNil ifTrue: [^self]. self select: (Array with: self list first). self fillInState: aNavigatorState
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>updating</category>
addItemChange
</methods> <methods> Refactory.Browser.MethodNavigatorPart <category>menus</category>
defaultMenu "Ugly method to add the spawn hierarchy after the spawn in the method list (assuming that our navigator has the spawn hierarchy action)." | newMenu menuItem spawnMenuItem | newMenu := super defaultMenu copy. menuItem := (navigator menuNamed: #classMenu) atNameKey: #'Spawn Class Hierarchy'. spawnMenuItem := newMenu atNameKey: #'Spawn Method'. menuItem isNil | spawnMenuItem isNil ifTrue: [^newMenu]. newMenu addItem: menuItem copy atPosition: spawnMenuItem position + 0.00001. ^newMenu
</methods> <methods> Refactory.Browser.MethodNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.RBMethodDefinition <category>private</category>
species ^MethodDefinition
</methods> <methods> Refactory.Browser.RBMethodDefinition <category>printing</category>
displayString ^self selector asString
</methods> <methods> Refactory.Browser.ObjectNameWrapper <category>converting</category>
asString ^fullName
</methods> <methods> Refactory.Browser.ObjectNameWrapper <category>accessing</category>
environmentName environmentName isNil ifTrue: [| index | index := fullName lastIndexOf: $. ifAbsent: [1]. environmentName := fullName copyFrom: 1 to: index - 1]. ^environmentName
fullName ^fullName
fullName: aString fullName := aString
simpleName simpleName isNil ifTrue: [| index | index := fullName lastIndexOf: $. ifAbsent: [0]. simpleName := fullName copyFrom: index + 1 to: fullName size]. ^simpleName
</methods> <methods> Refactory.Browser.ObjectNameWrapper <category>comparing</category>
< anObjectNameWrapper ^self displayString < anObjectNameWrapper displayString
= anObjectNameWrapper ^self class = anObjectNameWrapper class and: [fullName = anObjectNameWrapper fullName]
hash ^fullName hash
</methods> <methods> Refactory.Browser.ObjectNameWrapper <category>printing</category>
displayString PrintFormat isNil ifTrue: [^self simpleName]. ^PrintFormat expandMacrosWith: self simpleName with: self environmentName with: self fullName
</methods> <methods> Refactory.Browser.ObjectNameWrapper class <category>instance creation</category>
fullName: aString ^(self new) fullName: aString; yourself
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart <category>actions</category>
doubleClickItem hierarchyClass := nil. self updateWithState: navigator getState
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart <category>private</category>
hierachyFor: aClass | classes | classes := OrderedCollection new. self orderedSuperclassesFor: aClass into: classes. self orderedSubclassesFor: aClass into: classes. ^classes
hierarchyClass ^hierarchyClass
namesForState: aNavigatorState | rootClass classes | classes := aNavigatorState nonMetaClasses. classes isEmpty ifTrue: [classes := Array with: Object]. rootClass := self rootOf: classes. hierarchyClass := rootClass fullRootName. ^self convertToObjectNameWrappers: ((self hierachyFor: rootClass) collect: [:each | each fullRootName])
orderedSubclassesFor: aClass into: aCollection (aClass subclasses asSortedCollection: [:a :b | a name < b name]) do: [:each | each isMeta ifFalse: [aCollection add: each. self orderedSubclassesFor: each into: aCollection]]
orderedSuperclassesFor: aClass into: aCollection | current | current := aClass. [current notNil] whileTrue: [aCollection addFirst: current. current := current superclass]
rootOf: classCollection | root oldRoot | hierarchyClass notNil ifTrue: [oldRoot := hierarchyClass asQualifiedReference valueOrDo: [nil]. (oldRoot notNil and: [classCollection allSatisfy: [:each | | name | name := each fullRootName. self list anySatisfy: [:ref | name = ref]]]) ifTrue: [^oldRoot]]. root := classCollection detect: [:each | true]. (oldRoot notNil and: [root includesBehavior: oldRoot]) ifTrue: [root := oldRoot]. classCollection do: [:each | [root superclass isNil or: [each includesBehavior: root]] whileFalse: [root := root superclass]]. ^root
sortList: aCollection ^aCollection asList
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart <category>updating</category>
updateClassList "Don't do anything. We should refresh the list, but for now, make them refresh it."
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart <category>accessing</category>
displayTextFor: classNameWrapper | text | text := classNameWrapper displayString asText. classNameWrapper fullName = self hierarchyClass ifTrue: [text allBold]. ^text
offsetFor: classNameWrapper andIcon: anIcon | each | each := self objectForName: classNameWrapper fullName. ^each isNil ifTrue: [0 @ 0] ifFalse: [(each allSuperclasses size * 10) @ 0]
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart <category>testing</category>
showIcons "the indenting of the heirarchy causes to much real estate to be thrown away for icons" ^true
</methods> <methods> Refactory.Browser.HierarchyClassNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> UI.Panel <category>initialize-release</category>
initialize super initialize. self initializeLayoutAlgorithm
initializeLayoutAlgorithm self partFramingBlock: [:rectangle :part :index | rectangle]
layoutAlgorithm: aBlock "Set the layoutAlgorithm for the reciever. aBlock takes two arguments, first the rectangle to layout the subParts relative to, and second the collection of parts to provide the rectangles for. aBlock should return a collection, equal in size to the second argument, where each element is a rectangle for the associated subPart. While this is aBlock for flexibility, it is common to simply invoke a normal method from within the block. One may use the simpler partFramingBlock: API if their layout does not require inter part layout relationships." self updateFramesAfter: [layoutAlgorithm := aBlock]
partFramingBlock: aBlock "Provide aBlock which can be used on a per part basis to return the frame rectangle of a subPart relative to my bounds. aBlock arguments are culled, and are in order: rectangle: the rectangle of the parent to be relative to subPart: the actual VisualPart index: the index of the VisualPart" self layoutAlgorithm: [:rectangle :subParts | subParts keys collect: [:index | aBlock cull: rectangle cull: (subParts at: index) cull: index]]
</methods> <methods> UI.Panel <category>displaying</category>
displayOn: aGC self subpartsDo: [:part | self displayPart: part on: aGC]
displayPart: aPart on: aGC | box translation clip | box := (aPart propertyAt: #frame) ifNil: [^self]. translation := aGC translation. clip := aGC clippingBounds. (clip intersects: box) ifFalse: [^self]. [aGC intersectClip: box; translateBy: box origin. aPart displayOn: aGC] ensure: [aGC translation: translation; clippingRectangle: clip]
</methods> <methods> UI.Panel <category>private</category>
addComponent: aPart self add: aPart
changedPreferredBounds: ignored forComponent: aPart "Let the event pass up the tree, and then relayout." self superpart ifNotNil: [:part | part changedPreferredBounds: ignored forComponent: self]. self bounds: self bounds
compositionBoundsFor: aSubPart | box | box := aSubPart propertyAt: #frame. ^Point zero corner: box extent
graphicsContextFor: aSubPart | box gc | box := aSubPart propertyAt: #frame. gc := self superpart graphicsContextFor: self. gc intersectClip: box. gc translateBy: box origin. ^gc
invalidateRectangle: aRectangle repairNow: aBoolean forComponent: aSubPart | rect box | self superpart ifNil: [^self]. box := aSubPart propertyAt: #frame. rect := aRectangle translatedBy: box origin. (self bounds intersects: rect) ifTrue: [container invalidateRectangle: (self bounds intersect: rect) repairNow: aBoolean forComponent: self]
removeComponent: aSubPart ^self remove: aSubPart
updateFramesAfter: aBlock "A handy API for doing work that affects the components list, which should often be followed by updating layouts." aBlock ensure: [self bounds: self bounds]
updatePartFrames: aRectangle "This is the heart of the relayout algorithm. Invoke the layoutAlgorithm which should provide rectangles for each subPart. Update their #frame property. We keep track of the union of any part whose frame changes." | unionFrame oldBox oldFrames newFrames | self subparts isEmpty ifTrue: [^self]. oldFrames := components collect: [:each | each propertyAt: #frame]. newFrames := layoutAlgorithm value: aRectangle value: self subparts. unionFrame := nil. components keysAndValuesDo: [:index :each | | newBox | oldBox := oldFrames at: index. newBox := newFrames at: index. (oldBox isNil or: [oldBox ~= newBox]) ifTrue: [each propertyAt: #frame put: newBox. each bounds: (self compositionBoundsFor: each). unionFrame := (unionFrame ifNil: [newBox]) merge: newBox. oldBox ifNotNil: [unionFrame := unionFrame merge: oldBox]]]. unionFrame ifNotNil: [self invalidateRectangle: unionFrame]
</methods> <methods> UI.Panel <category>adding-removing</category>
add: aPart self updateFramesAfter: [| part | part := aPart asVisualPart. components add: part. part container: self]
add: aVisualPart at: aPoint "For backwards compatibility, but I'm sticking it where I want." self add: aVisualPart
add: aVisualPart borderedIn: aLayoutObject "Undecided what to do with this API yet." self shouldNotImplement
add: aVisualPart in: aLayoutObject "For backwards compatibility, but I'm sticking it where I want." self add: aVisualPart
add: aVisualComponent in: aLayoutObject borderWidth: anInteger "Undecided what to do with this API yet." self shouldNotImplement
addWrapper: aVisualWrapper "Undecided what to do about this API." self shouldNotImplement
remove: aSubPart "Need to make sure we include the removed frame in invalidation. The normal updateFramesAfter: won't catch that." | rectangle | rectangle := aSubPart propertyAt: #frame. self updateFramesAfter: [components remove: aSubPart. aSubPart container: nil]. self invalidateRectangle: rectangle. ^aSubPart
</methods> <methods> UI.Panel <category>accessing</category>
partAt: anIndex ^components at: anIndex
subparts ^components
subpartsDo: aBlock components do: [:each | aBlock value: each]
</methods> <methods> UI.Panel <category>layout algorithms</category>
beHorizontalSpread self partFramingBlock: [:rectangle :part :index | | stride | stride := rectangle width / components size. rectangle origin + (((index - 1) * stride) @ 0) extent: stride @ rectangle height]
beVerticalSpread self partFramingBlock: [:rectangle :part :index | | subHeight | subHeight := rectangle height / components size. rectangle left @ ((index - 1) * subHeight + rectangle top) extent: rectangle width @ subHeight]
</methods> <methods> UI.Panel <category>event driven</category>
handlerForMouseEvent: aMouseEvent "The receiver is in a control hierarchy and the container is asking for an object that wants control. If no control is desired then the receiver answers nil. If control is wanted then the receiver answers the control object." | obj | components size to: 1 by: -1 do: [:i | (obj := (components at: i) handlerForMouseEvent: aMouseEvent) == nil ifFalse: [^obj]]. (obj := super handlerForMouseEvent: aMouseEvent) == nil ifFalse: [^obj]. ^nil
</methods> <methods> UI.Panel <category>bounds accessing</category>
bounds: aRectangle self subpartsDo: [:each | each flushCoordinateCaches]. self updatePartFrames: aRectangle
</methods> <methods> UI.Panel class <category>example</category>
example "self example" | window panel | window := ApplicationWindow new. panel := self new. window component: panel. window openWithExtent: 400 @ 100. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue red; displayRectangle: box]). window checkForEvents. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue yellow; displayRectangle: box]). (Delay forSeconds: 1) wait. window checkForEvents. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue blue; displayRectangle: box]). window checkForEvents. ^panel
exampleHorizontalSpread "self exampleHorizontalSpread" | window panel | window := ApplicationWindow new. panel := self new. panel beHorizontalSpread. window component: panel. window openWithExtent: 400 @ 100. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue red; displayRectangle: box]). window checkForEvents. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue yellow; displayRectangle: box]). (Delay forSeconds: 1) wait. window checkForEvents. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue blue; displayRectangle: box]). window checkForEvents. ^panel
exampleSpreadAndPreferred "self exampleSpreadAndPreferred" "An example of anything is possible, even if ugly" | window panel | window := ApplicationWindow new. panel := self new. panel layoutAlgorithm: [:rectangle :subParts | | size preferredHeights totalPreferredHeight countToSpread top | size := 5. preferredHeights := subParts collect: [:each | (size := size * -2) negative ifTrue: [nil] ifFalse: [size]]. totalPreferredHeight := preferredHeights inject: 0 into: [:accum :each | accum + (each ifNil: [0])]. countToSpread := preferredHeights inject: 0 into: [:accum :each | accum + (each ifNil: [1] ifNotNil: [0])]. countToSpread isZero ifFalse: [| spread | spread := (rectangle height - totalPreferredHeight max: 0) / countToSpread. preferredHeights := preferredHeights collect: [:each | each ifNil: [spread]]]. top := rectangle top. preferredHeights collect: [:height | | box | box := rectangle left @ top extent: rectangle width @ height. top := top + height. box]]. window component: panel. window openWithExtent: 50 @ 200. #(#red #green #yellow #blue) keysAndValuesDo: [:index :each | | visual | (Delay forSeconds: 1) wait. visual := VisualBlock block: [:gc :box | gc paint: (ColorValue perform: each); displayRectangle: box]. panel add: visual. window checkForEvents]. ^panel
exampleVerticalSpread "self exampleVerticalSpread" | window panel | window := ApplicationWindow new. panel := self new. panel beVerticalSpread. window component: panel. window openWithExtent: 100 @ 400. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue red; displayRectangle: box]). window checkForEvents. (Delay forSeconds: 1) wait. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue yellow; displayRectangle: box]). (Delay forSeconds: 1) wait. window checkForEvents. panel add: (VisualBlock block: [:gc :box | gc paint: ColorValue blue; displayRectangle: box]). window checkForEvents. ^panel
</methods> <methods> Refactory.Browser.RBDynamicMultiCommand <category>accessing</category>
actionSpecificationsFor: anObject ^[self performWith: anObject] on: Error do: [:ex | ex return: #()]
</methods> <methods> Refactory.Browser.SelectorNavigatorPart <category>private</category>
allSelectorsIn: aNavigatorState | selectors classes class | classes := aNavigatorState selectedClasses. classes size ~= 1 ifTrue: [^#()]. class := classes asArray first. selectors := self environment selectorsForClass: class. ^selectors collect: [:each | RBMethodDefinition class: class selector: each]
displayTextFor: aMethodDefinition | text | text := super displayTextFor: aMethodDefinition. navigator showOnlyFiltered ifTrue: [^text]. (navigator parcels , navigator packages anySatisfy: [:each | each definesSelector: aMethodDefinition selector forClass: aMethodDefinition implementingClass]) ifTrue: [text addEmphasis: #(#bold) removeEmphasis: #() allowDuplicates: false]. ^text
fillInListFor: aNavigatorState | protocols | protocols := aNavigatorState protocols. (protocols isEmpty and: [self class showAllItemsWhenNothingSelected]) ifTrue: [protocols := self allProtocolsIn: aNavigatorState]. ^self methodDefinitionsFor: protocols in: aNavigatorState selectedClass
instanceVariableSelectorsIn: aNavigatorState | class instanceVariables defs indices | instanceVariables := aNavigatorState instanceVariables. defs := self methodDefinitionsFor: (self allProtocolsIn: aNavigatorState) in: aNavigatorState selectedClass. instanceVariables isEmpty ifTrue: [^defs]. class := aNavigatorState selectedClass. class isNil ifTrue: [^#()]. indices := instanceVariables collect: [:each | class instVarIndexFor: each]. ^defs select: [:each | indices anySatisfy: [:index | (InstanceVariableSearch new) method: each method; searchFor: index - 1 type: #readWrite]]
methodDefinitionsFor: protocols in: class | selectors | selectors := OrderedCollection new. class notNil ifTrue: [protocols do: [:each | selectors addAll: (self methodDefinitionsIn: each)]]. ^selectors
sortBlock ^ [:a :b | a selector < b selector or: [a selector = b selector and: [a implementingClass allSuperclasses size > b implementingClass allSuperclasses size]]]
</methods> <methods> Refactory.Browser.SelectorNavigatorPart <category>updating widgets</category>
newSelectionsBasedOn: oldSelections | newSelections | newSelections := OrderedCollection new: oldSelections size. oldSelections do: [:each | | new | new := nil. each implementingClass = each inheritingClass ifFalse: [new := self list detect: [:def | def selector = each selector and: [each implementingClass = def implementingClass]] ifNone: [nil]]. new isNil ifTrue: [new := self list detect: [:def | def selector = each selector] ifNone: [nil]]. new notNil ifTrue: [newSelections add: new]]. ^newSelections
selectState: aNavigatorState self fillInListWith: aNavigatorState. self select: aNavigatorState definitions
updateWithState: aNavigatorState | initialSelections | initialSelections := self selections. self fillInListWith: aNavigatorState. self select: (self newSelectionsBasedOn: initialSelections). aNavigatorState definitions: self selections
</methods> <methods> Refactory.Browser.SelectorNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.BrowserDialog <category>widget properties</category>
disable: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component disable]
disableAll: aCollection aCollection do: [:each | self disable: each]
enable: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component enable]
enableAll: aCollection aCollection do: [:each | self enable: each]
hide: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component beInvisible]
hideAll: aCollection aCollection do: [:each | self hide: each]
show: aSymbol | component | builder isNil ifTrue: [^self]. component := builder componentAt: aSymbol. component notNil ifTrue: [component beVisible]
showAll: aCollection aCollection do: [:each | self show: each]
</methods> <methods> Refactory.Browser.BrowserDialog <category>interface opening</category>
createSelectedVisualBlockFrom: aBlock ^ [:v :index | | rw | rw := ReversingWrapper on: (aBlock value: v value: index). rw reverse setValue: true. BoundedWrapper on: rw]
createVisualBlockFrom: block ^[:view :index | BoundingWrapper on: (block value: view value: index)]
visualBlockFor: aSymbol is: aBlock | specWidget | builder isNil ifTrue: [^self]. specWidget := builder componentAt: aSymbol. specWidget isNil ifTrue: [^self]. (specWidget widget) visualBlock: (self createVisualBlockFrom: aBlock); selectedVisualBlock: (self createSelectedVisualBlockFrom: aBlock)
</methods> <methods> Refactory.Browser.BrowserDialog class <category>images</category>
downImage ^OpaqueImageWithEnablement figure: self downIcon shape: self downIconMask inactiveFigure: self disabledDownIcon inactiveShape: self disabledDownIconMask
upImage ^OpaqueImageWithEnablement figure: self upIcon shape: self upIconMask inactiveFigure: self disabledUpIcon inactiveShape: self disabledUpIconMask
</methods> <methods> Refactory.Browser.BrowserDialog class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart <category>private</category>
buildClassesSubcanvas | state | state := navigator getState. self installSubcanvas: #classesSpec using: self. self resize: false. self selectStateForComponents: state
buildMethodsSubcanvas | state | state := navigator getState. self methods resetBuilder. self installSubcanvas: #methodsSpec using: self. self resize: true. self selectStateForComponents: state
nonPrimaryWidgets ^#(splitter selectors)
releaseComponents self components do: [:each | each == methods ifFalse: [each release]]
resize: fullSizeBoolean | splitter widget | fullSizeBoolean ifTrue: [self hideAll: self nonPrimaryWidgets] ifFalse: [self showAll: self nonPrimaryWidgets]. widget := self builder componentAt: #subcanvas. splitter := self builder componentAt: #splitter. [(widget component layout) rightOffset: (fullSizeBoolean ifTrue: [0] ifFalse: [splitter component layout leftOffset]); rightFraction: (fullSizeBoolean ifTrue: [1] ifFalse: [splitter component layout leftFraction]). splitter widget repairAfterMove] on: Error do: [:ex | ex return]
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart <category>changing</category>
changedTab super changedTab. self changed
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart <category>accessing</category>
classes | classes | classes := self componentNamed: #classes. classes isNil ifTrue: [classes := ClassAndObjectNavigatorPart new. navigator notNil ifTrue: [classes navigator: navigator]. self componentNamed: #classes put: classes]. self selectors. ^classes
methods methods isNil ifTrue: [methods := MethodNavigatorPart new. navigator notNil ifTrue: [methods navigator: navigator]]. (self componentNamed: #methods) isNil ifTrue: [self componentNamed: #methods put: methods]. ^methods
selectors selectors isNil ifTrue: [selectors := NameSpaceItemTabNavigatorPart new. navigator notNil ifTrue: [selectors navigator: navigator]]. (self componentNamed: #selectors) isNil ifTrue: [self componentNamed: #selectors put: selectors]. ^selectors
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart <category>testing</category>
isViewingSelectorList | subcanvas | builder isNil ifTrue: [^false]. subcanvas := builder componentAt: #selectors. ^subcanvas isNil ifTrue: [false] ifFalse: [subcanvas isVisible]
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart <category>initialize-release</category>
release methods release. super release
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart class <category>accessing</category>
defaultTabDescriptions | descriptions | descriptions := OrderedCollection new. descriptions add: (TabPartDescription named: (#Method << #browser >> 'Method') buildWith: #buildMethodsSubcanvas match: #alwaysEnabled: enabled: #alwaysEnabled:); add: (TabPartDescription named: (#Class << #browser >> 'Class') buildWith: #buildClassesSubcanvas match: #alwaysEnabled: enabled: #alwaysEnabled:). ^descriptions
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.ConstantNavigatorPart <category>updating widgets</category>
selectState: aNavigatorState self fillInState: aNavigatorState
updateWithState: aNavigatorState self fillInState: aNavigatorState
</methods> <methods> Refactory.Browser.ConstantNavigatorPart <category>initialize-release</category>
stateBlock: aBlockClosure stateBlock := aBlockClosure
</methods> <methods> Refactory.Browser.ConstantNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState stateBlock value: aNavigatorState
</methods> <methods> Refactory.Browser.ConstantNavigatorPart class <category>instance creation</category>
onNavigator: aNavigator stateBlock: aBlockClosure ^(self onNavigator: aNavigator) stateBlock: aBlockClosure; yourself
</methods> <methods> Refactory.Browser.ConstantNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Refactory.Browser.NavigatorState <category>comparing</category>
= anObject #(#class #pundles #parcels #objectNames #protocols #selectors #nameSpace) do: [:each | (self perform: each) = (anObject perform: each) ifFalse: [^false]]. self properties size = anObject properties size ifFalse: [^false]. self properties keysAndValuesDo: [:key :value | value = (anObject properties at: key ifAbsent: [Object new]) ifFalse: [^false]]. ^true
hash ^self selectedClass hash bitXor: (self protocol hash bitXor: self selector hash)
</methods> <methods> Refactory.Browser.NavigatorState <category>accessing</category>
classInstanceVariable ^self any: self classInstanceVariables
classInstanceVariables ^self propertyAt: #classInstanceVariables ifAbsent: [#()]
instanceVariable ^self any: self instanceVariables
instanceVariables ^self propertyAt: #instanceVariables ifAbsent: [#()]
instanceVariables: vars self propertyAt: #instanceVariables put: vars
mostSpecificObject self definitions do: [:each | ^each]. self classesAndNameSpaces do: [:each | ^each]. self pundles do: [:each | ^each]. self parcels do: [:each | ^each]. ^nil
nameSpace self methodDefinitions do: [:each | each method notNil ifTrue: [^each method environment]]. self classesAndNameSpaces do: [:each | ^each environment]. ^nameSpaceName asQualifiedReference valueOrDo: [Smalltalk]
nameSpace: aNameSpace nameSpaceName := aNameSpace fullRootName
package ^self any: self packages
packages | packages todo each | packages := OrderedCollection new. todo := OrderedCollection withAll: self pundles. [todo isEmpty] whileFalse: [each := todo removeFirst. each isBundle ifTrue: [todo addAll: each containedItems] ifFalse: [packages add: each]]. ^packages
parcel ^self any: self parcels
parcel: aParcel ^self parcels: (aParcel isNil ifTrue: [#()] ifFalse: [Array with: aParcel])
parcels | pc | pc := OrderedCollection new: parcels size. parcels do: [:each | | parcel | parcel := Parcel parcelNamed: each. (parcel isNil and: [each = UnparceledParcel unparceledParcelName]) ifTrue: [parcel := UnparceledParcel new]. parcel notNil ifTrue: [pc add: parcel]]. ^pc
parcels: aCollection | realParcels | parcels := aCollection collect: [:each | each name]. realParcels := aCollection select: [:each | each notNil]. ^self selectNamespaceIn: realParcels
propertyAt: aSymbol ^self propertyAt: aSymbol ifAbsent: [nil]
propertyAt: aSymbol ifAbsent: aBlock ^properties at: aSymbol ifAbsent: aBlock
propertyAt: aSymbol put: anObject ^properties at: aSymbol put: anObject
protocol ^self any: self protocols
protocol: aSymbol protocols := aSymbol isNil ifTrue: [#()] ifFalse: [Array with: aSymbol]
protocols ^protocols
protocols: symbolCollection protocols := symbolCollection
pundle ^self any: self pundles
pundle: aPundle self pundles: (aPundle isNil ifTrue: [#()] ifFalse: [Array with: aPundle])
pundles | pundleCollection reg | reg := #{Store.Registry} valueOrDo: [^#()]. reg == nil ifTrue: [ ^#() ]. pundleCollection := OrderedCollection new: pundles size. pundles do: [:each | | pundle | pundle := each last ifTrue: [reg packageNamed: each first] ifFalse: [reg bundleNamed: each first]. pundle notNil ifTrue: [pundleCollection add: pundle]]. ^pundleCollection
pundles: aCollection | justPackages | pundles := aCollection collect: [:each | Array with: each name with: each isPackage]. justPackages := aCollection select: [:each | each isPackage]. self selectNamespaceIn: justPackages
removeProperty: aKey properties removeKey: aKey ifAbsent: []
selectedNameSpace ^(objectNameReferences detect: [:some | some isDefined and: [some value isNameSpace]] ifNone: [^nil]) value
selectNamespaceIn: justPackages | namespaces | justPackages isEmpty ifTrue: [^self nameSpace: Smalltalk]. namespaces := (justPackages collect: [:each | each environment ifNil: [Smalltalk]]) asSet. self nameSpace: (namespaces size = 1 ifTrue: [namespaces any] ifFalse: [Smalltalk])
</methods> <methods> Refactory.Browser.NavigatorState <category>copying</category>
postCopy super postCopy. properties := properties copy
</methods> <methods> Refactory.Browser.NavigatorState <category>private</category>
any: aCollection ^aCollection detect: [:each | true] ifNone: [nil]
properties ^properties
</methods> <methods> Refactory.Browser.NavigatorState <category>testing</category>
hasSelection ^(self objectNames isEmpty and: [self parcels isEmpty and: [self packages isEmpty]]) not
isData ^self type = #sharedVariable
isMeta ^self type = #class
</methods> <methods> Refactory.Browser.NavigatorState <category>accessing-class</category>
classesAndNameSpaces | objects | objects := OrderedCollection new. objectNameReferences do: [:each | | class | class := each valueOrDo: [nil]. (class notNil and: [class isBehavior or: [class isNameSpace]]) ifTrue: [objects add: class]]. ^objects
classesAndNameSpaces: aCollection | any | any := self any: aCollection. any notNil ifTrue: [type := any isBehavior ifTrue: [any isMeta ifTrue: [#class] ifFalse: [#instance]] ifFalse: [#sharedVariable]]. objectNameReferences := aCollection collect: [:each | (each isBehavior ifTrue: [each instanceBehavior] ifFalse: [each]) fullRootName asQualifiedReference]
classOrNameSpace ^self any: self classesAndNameSpaces
classOrNameSpace: anObject ^self classesAndNameSpaces: (anObject isNil ifTrue: [#()] ifFalse: [Array with: anObject])
clearClassDependentFields self parcels: #(); pundles: #(); definitions: #(); inheritToClass: nil
clearCodeComponents self parcel: nil; pundle: nil; removeProperty: #codeComponentTab
inheritToClass | inheritToType class superclasses inheritToClass | objectNameReferences size = 1 ifFalse: [^nil]. inheritToType := self inheritToType. class := self selectedClass. class isNil ifTrue: [^nil]. inheritToType = #root ifTrue: [^class withAllSuperclasses last]. inheritToType = #rootMinusOne ifTrue: [superclasses := class withAllSuperclasses. ^superclasses size > 1 ifTrue: [superclasses at: superclasses size - 1] ifFalse: [class]]. inheritToType = #class ifTrue: [inheritToClass := (self propertyAt: #inheritToClass ifAbsent: [^class]) asQualifiedReference valueOrDo: [^class]. self isMeta ifTrue: [inheritToClass := inheritToClass class]. ^(class includesBehavior: inheritToClass) ifTrue: [inheritToClass] ifFalse: [class]]. ^class
inheritToClass: aClass aClass isNil ifTrue: [^self removeProperty: #inheritToClass]. self propertyAt: #inheritToType put: #class. self propertyAt: #inheritToClass put: aClass instanceBehavior fullName
inheritToType ^self propertyAt: #inheritToType ifAbsent: [#class]
inheritToType: aSymbol self propertyAt: #inheritToType put: aSymbol
nonMetaClass | classes | classes := self nonMetaClasses. ^classes isEmpty ifTrue: [nil] ifFalse: [classes first]
nonMetaClasses | classes | classes := OrderedCollection new: objectNameReferences size. objectNameReferences do: [:each | | class | class := each valueOrDo: [nil]. (class notNil and: [class isBehavior]) ifTrue: [classes add: class]]. ^classes
objectName ^self any: self objectNames
objectName: aName objectNameReferences := aName isNil ifTrue: [#()] ifFalse: [Array with: aName asQualifiedReference]
objectNames ^objectNameReferences collect: [:each | each asString]
objectNames: aCollection objectNameReferences := aCollection collect: [:each | each asQualifiedReference]
objectNamesOrderedForRemoval | objectToNameMap objectsOrderedForUnload | objectToNameMap := IdentityDictionary new. objectNameReferences do: [:each| objectToNameMap at: each value put: each asString]. objectsOrderedForUnload := (SystemUtils sortForLoading: objectToNameMap keys) reverse. ^objectsOrderedForUnload collect: [:each | objectToNameMap at: each]
selectedBinding ^self any: self selectedBindings
selectedBindings | bindings | bindings := OrderedCollection new: objectNameReferences size. objectNameReferences do: [:each | | binding | binding := each bindingOrNil. binding notNil ifTrue: [bindings add: binding]]. ^bindings
selectedClass | class | class := self nonMetaClass. class isNil ifTrue: [^nil]. ^self isMeta ifTrue: [class class] ifFalse: [class]
selectedClass: aClass aClass isNil ifTrue: [^objectNameReferences := #()]. type := aClass isMeta ifTrue: [#class] ifFalse: [#instance]. self objectName: (self isMeta ifTrue: [aClass soleInstance fullRootName] ifFalse: [aClass fullRootName]). ^aClass
selectedClasses | classes | classes := self nonMetaClasses. ^self isMeta ifTrue: [classes collect: [:each | each class]] ifFalse: [classes]
selectedClasses: classCollection objectNameReferences := classCollection collect: [:each | each instanceBehavior fullRootName asQualifiedReference]. classCollection isEmpty ifTrue: [type := #instance. ^self]. type := classCollection first isMeta ifTrue: [#class] ifFalse: [#instance]
selectedGlobals | globals | globals := OrderedCollection new: objectNameReferences size. objectNameReferences do: [:each | each ifDefinedDo: [:classOrNameSpace | (classOrNameSpace isNameSpace or: [classOrNameSpace isBehavior]) ifTrue: [globals add: classOrNameSpace]]]. ^globals
selectedNameSpace: aNameSpace aNameSpace isNil ifTrue: [^objectNameReferences := #()]. self objectName: aNameSpace fullRootName. ^aNameSpace
type ^type
type: aSymbol type := aSymbol
</methods> <methods> Refactory.Browser.NavigatorState <category>accessing-methods</category>
allDefinitions ^self propertyAt: #allDefinitions ifAbsent: [#()]
allDefinitions: aCollection self propertyAt: #allDefinitions put: aCollection
definition ^self any: self definitions
definition: aMethodDefinition self definitions: (aMethodDefinition isNil ifTrue: [#()] ifFalse: [Array with: aMethodDefinition])
definitions ^definitions
definitions: aCollection | def | definitions := aCollection. aCollection isEmpty ifTrue: [^self]. def := self any: aCollection. def isForSharedVariable ifTrue: [self type: #sharedVariable]
methodClass | def | def := self definition. ^def isNil ifTrue: [self selectedClass] ifFalse: [def implementingClass]
methodDefinitions ^self definitions reject: [:each | each isForSharedVariable]
selector ^self any: self selectors
selector: aSymbol self selectors: (aSymbol isNil ifTrue: [#()] ifFalse: [Array with: aSymbol])
selectors | defs class | defs := self methodDefinitions. defs isEmpty ifTrue: [^#()]. class := self selectedClass. ^(defs select: [:each | each inheritingClass = class]) collect: [:each | each selector]
selectors: symbolCollection | class | class := self selectedClass. class isNil ifTrue: [^self definitions: #()]. self definitions: (symbolCollection collect: [:each | | implementingClass | implementingClass := class whichClassIncludesSelector: each. implementingClass isNil ifTrue: [implementingClass := class]. RBMethodDefinition class: class implementor: implementingClass selector: each])
sharedVariableDefinitions ^self definitions select: [:each | each isForSharedVariable]
sharedVariableName ^self any: self sharedVariableNames
sharedVariableNames ^self sharedVariableDefinitions collect: [:each | each variableName]
</methods> <methods> Refactory.Browser.NavigatorState <category>printing</category>
printOn: aStream | binding currentPackage | binding := self selectedBinding. currentPackage := self package. binding notNil ifTrue: [aStream nextPutAll: binding key. self isMeta ifTrue: [aStream nextPutAll: ' class']. self selector notNil ifTrue: [currentPackage := Store.Registry containingPackageForSelector: self selector class: binding value. aStream nextPutAll: '>>'; nextPutAll: self selector] ifFalse: [self sharedVariableName notNil ifTrue: [aStream nextPut: $.; nextPutAll: self sharedVariableName] ifFalse: [self protocol notNil ifTrue: [aStream nextPut: $>; nextPutAll: self protocol]]]] ifFalse: [self pundles isEmpty ifTrue: [self parcels isEmpty ifTrue: [aStream nextPutAll: '(nothing selected)'] ifFalse: [aStream nextPutAll: self parcel name]] ifFalse: [aStream nextPutAll: self pundle name]]. currentPackage ifNotNil: [:package | package environment ifNotNil: [:scope | aStream nextPutAll: ' {'. scope printOn: aStream. aStream nextPut: $}]]
</methods> <methods> Refactory.Browser.NavigatorState <category>initialize-release</category>
initialize parcels := pundles := objectNameReferences := protocols := definitions := #(). nameSpaceName := Smalltalk fullRootName. type := #instance. properties := IdentityDictionary new
</methods> <methods> Refactory.Browser.NavigatorState class <category>instance creation</category>
new ^super new initialize
</methods> <methods> Refactory.Browser.PundleItem <category>private</category>
item ^item
showWarningIcon "This method must be fast. It is called each time a pundle is displayed, so its speed directly affects the speed of list display. It should not do anything more complex than checking a few values. Absolutely no lengthy computations!" (ShowWarningsForUncommentedPundles and: [self programItem commentOrNil isNil]) ifTrue: [^true]. ^false
storeRegistry ^#{Store.Registry} value
</methods> <methods> Refactory.Browser.PundleItem <category>printing</category>
displayString ^item == self storeRegistry ifTrue: ['Local Image'] ifFalse: [item displayString]
</methods> <methods> Refactory.Browser.PundleItem <category>comparing</category>
= anObject ^self class = anObject class and: [self item = anObject item]
hash ^item hash
</methods> <methods> Refactory.Browser.PundleItem <category>initialize-release</category>
item: anObject item := anObject
</methods> <methods> Refactory.Browser.PundleItem <category>accessing</category>
containedItems | items | items := OrderedCollection new. item containedItems do: [:each | items add: (self class item: each)]. item = self storeRegistry ifTrue: [items add: (self class item: item nullPackage)]. ^items
icon "Answer the icon for the user in the browser lists. Other clients should use #toolListIcon." "This method must be fast. It produces an icon to display for a bundle or a package in the package list of the browser, and is invoked each time an item is displayed." item == self storeRegistry ifTrue: [^nil]. ^self showWarningIcon ifTrue: [| warningIcon | warningIcon := ListIconLibrary visualFor: #warningOverlay. item pundleListIcon ifNil: [warningIcon] ifNotNil: [:pundleIcon | VisualStack with: pundleIcon with: warningIcon]] ifFalse: [item pundleListIcon]
programItem ^self storeRegistry = item ifTrue: [nil] ifFalse: [item]
toolListIcon "The icon for general purpose lists, without showing warning icons the browser shows." ^item == self storeRegistry ifTrue: [nil] ifFalse: [item pundleListIcon]
</methods> <methods> Refactory.Browser.PundleItem class <category>instance creation</category>
item: aProgramItem ^(self new) item: aProgramItem; yourself
</methods> <methods> Refactory.Browser.PundleItem class <category>class initialization</category>
initialize ModifiedPackageImage := ListIconLibrary visualFor: #modifiedPackage. ModifiedBundleImage := ListIconLibrary visualFor: #modifiedBundle. UnmodifiedPackageImage := ListIconLibrary visualFor: #package. UnmodifiedBundleImage := ListIconLibrary visualFor: #bundle
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>aspects</category>
objectList "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^objectList isNil ifTrue: [objectList := MultiSelectionInTree new] ifFalse: [objectList]
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>private</category>
basicExpandToShow: pundleCollection | bundles | bundles := Set new. pundleCollection do: [:each | bundles addAll: (self storeRegistry enclosingComponentsFor: each)]. bundles isEmpty ifTrue: [^self]. self basicExpandToShow: bundles. bundles do: [:each | | index list item | list := self list. index := list size + 1. item := PundleItem item: each. [(index := list prevIndexOf: item from: index - 1 to: 1) notNil] whileTrue: [self expand: index]]
displayTextFor: aPundleModel ^aPundleModel displayString
expand: index ^self list expand: index
expandToShowPundles: pundles self expand: 1. self basicExpandToShow: pundles
fillInListFor: aNavigatorState needsRefresh: aBoolean | list | list := self list. aBoolean ifTrue: [list refreshRoot] ifFalse: [1 to: list size do: [:i | | wrapper | wrapper := list wrapperAt: i. (wrapper openedChildren and: [(wrapper children collect: [:each | each value]) ~= wrapper value containedItems]) ifTrue: [^list refreshRoot]]]
select: aCollection "Overridden so that we can scroll the list to show a selected item." | index range view wrapper | super select: aCollection. wrapper := self builder componentAt: #objectList. wrapper isNil ifTrue: [^self]. view := wrapper widget. range := view visibleIntervalForBounds: view bounds. range isEmpty ifTrue: [^self]. index := view selectionChannel value detect: [:each | true] ifNone: [^self]. (view selectionChannel value anySatisfy: [:each | each between: range first and: range last]) ifFalse: [view makeVisible: index]
select: aCollection in: aSelectionInList | indices list | indices := OrderedCollection new: aCollection size. list := aSelectionInList list. aCollection do: [:each | | index item | index := 0. item := PundleItem item: each. [(index := list nextIndexOf: item from: index + 1 to: list size) notNil] whileTrue: [indices add: index]]. aSelectionInList selectionIndexes: indices
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>interface opening</category>
changeMultiSelectionList: aSymbol
updateVisualBlock
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>accessing-navigator</category>
fillInState: aNavigatorState | pundles selections | selections := self selections. pundles := OrderedCollection new: selections size. selections do: [:each | | item | item := each programItem. item notNil ifTrue: [pundles add: item]]. aNavigatorState pundles: pundles
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>testing</category>
shouldSelectPackages ^self list size = 1
showIcons ^true
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>initialize-release</category>
initialize super initialize. self list: (TreeModel on: (PundleItem item: self storeRegistry) displayRoot: true childrenWith: [:each | each containedItems])
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>updating widgets</category>
selectedItemsIn: aNavigatorState ^aNavigatorState pundles
</methods> <methods> Refactory.Browser.PundleNavigatorPart <category>updating</category>
changeSetUpdate: anAspectSymbol with: aParameter "This may cause some update problems. However, without this code, the bundle list is not automatically refreshed." (#(#bundleStructure: #loadPundle: #loadParcel: #unloadComponent:) includes: anAspectSymbol) ifTrue: [^self fillInListFor: navigator state needsRefresh: false]. anAspectSymbol = #savePundle: ifTrue: [^self invalidateObjectListWidget]. (anAspectSymbol = #component:property:value: and: [(aParameter at: 2) = #comment]) ifTrue: [^self invalidateObjectListWidget]
</methods> <methods> Refactory.Browser.PundleNavigatorPart class <category>private-interface building</category>
markedAsSystemClass "This class not to be shown when browsing user classes."
</methods> <methods> Core.Metaclass <category>accessing</category>
initialMethodCategory ^#'instance creation'
</methods> <methods> Refactory.Browser.UnparceledParcel <category>testing</category>
hasComment ^true
needsComment ^false
</methods> <methods> Core.Class <category>accessing</category>
initialMethodCategory ^#accessing
</methods> <methods> Graphics.GraphicsContext <category>accessing</category>
widgetPolicy ^medium widgetPolicy
</methods> <methods> Refactory.Browser.BrowserEnvironmentWrapper <category>accessing</category>
selectionIntervalFor: aString | interval | interval := super selectionIntervalFor: aString. ^interval notNil ifTrue: [interval] ifFalse: [environment selectionIntervalFor: aString]
</methods> <methods> Core.ClassDescription <category>testing</category>
hasComment "This needs to go FAST as the browser hits it lots (via needsComment). So just check for commentKey. " ^self commentKey notNil
needsComment "This needs to go FAST as the browser hits it lots (which it does based on the fast implementation of hasComment). Note that a class tree (such as TestCases) which doesn't want to regularly be bothered about needing comments can implement #needsComment to return false" ^self hasComment not
</methods> <methods> Tools.GeneralMethodDefinition <category>accessing</category>
asOverride ^Override forSelector: self selector class: self implementingClass
classOrNameSpace ^self inheritingClass
</methods> <methods> Tools.GeneralMethodDefinition <category>printing</category>
fullDisplayText | text | text := self displayString asText. self isOverridden ifTrue: [text emphasizeAllWith: (Array with: #color -> ColorValue red)]. ^text
</methods> <methods> Tools.GeneralMethodDefinition <category>testing</category>
isForSharedVariable ^false
isOverridden ^false
</methods> <methods> Tools.GeneralMethodDefinition <category>printing</category>
simpleDisplayText | string | string := self selector asString. self implementingClass ~= self inheritingClass ifTrue: [string := self selector asText , ((' (' , self implementingClass name , ')') asText emphasizeAllWith: #italic)]. ^string asText
</methods> <methods> Graphics.VisualPart <category>accessing</category>
asVisualPart "I am a VisualPart already. This is here so that interested parties can coerce instances of VisualComponent into Parts." ^self
</methods> <methods> Graphics.VisualPart <category>bounds accessing</category>
globalPointToLocal: aPoint "Convert a point in local coordinates to a point in the top windows coordinate system. Forwarded to the receiver's container." ^container globalPointToLocal: ((self propertyAt: #frame) ifNil: [aPoint] ifNotNil: [:box | aPoint - box origin])
localPointToGlobal: aPoint "Convert a point in local coordinates to a point in the top windows coordinate system. Forwarded to the receiver's container." ^container localPointToGlobal: ((self propertyAt: #frame) ifNil: [aPoint] ifNotNil: [:box | box origin + aPoint])
</methods> <methods> UI.WinXPWidgetPolicy <category>accessing</category>
inputFieldBorder ^SimpleBorder width: 1 color: SymbolicPaint textDataBorder
</methods> <methods> Kernel.Parcel <category>queries</category>
externalMethodsUsedExclusively "The algorithm computes a fixed point of the methods used by the parcel which are unused outside it. The algorithm is compute messages sent within parcel repeat until at a fixed point: compute intersection of this with methods implemented outside parcel compute messages sent outside parcel not within the intersection remove these from intersection" | parcelMessages "<IdentitySet of: Symbol> messages sent within this parcel" externalMethods "<Set of: MethodDescription> methods implemented outside this parcel" danglingMethods "<Set of: MethodDescription> methods importeded only by this parcel" previousDangling "<Set of: MethodDescription> intermediate value of danglingMethods (for determining if fixed point is reached)" danglingMessages "<Set of: Symbol> selectors of methods in danglingMethods" noLongerDangling "<Set of: Symbol> selectors to be moved from dangling" | parcelMessages := IdentitySet new. self methodsDo: [:meth| parcelMessages addAll: meth allSymbolLiterals]. "compute starting points for danglingMethods and externalMethods" danglingMethods := Set new: 50. externalMethods := Set new: 20000. SystemUtils allBehaviorsDo: [:aBehavior| | extends | (self definesClass: aBehavior) ifFalse: [extends := self extendsBehavior: aBehavior. aBehavior selectorsAndMethodsDo: [:sel :meth| (extends and: [self definesSelector: sel forClass: aBehavior]) ifFalse: [((parcelMessages includes: sel) ifTrue: [danglingMethods] ifFalse: [externalMethods]) add: (MethodDefinition class: aBehavior selector: sel)]]]]. ["Now iterate to the fixed-point. Any method in dangling with a selector sent in external must be moved into external until dangling reaches its fixed point." previousDangling := danglingMethods copy. danglingMessages := danglingMethods collect: [:md| md selector]. noLongerDangling := Set new: danglingMethods size. externalMethods do: [:md| md method allSymbolLiteralsDo: [:l| (danglingMessages includes: l) ifTrue: [noLongerDangling add: l]]]. externalMethods := danglingMethods select: [:md| noLongerDangling includes: md selector]. danglingMethods removeAll: externalMethods. danglingMethods size ~= previousDangling size] whileTrue. ^danglingMethods
unparceledMethodsOfDefinedClasses | references | references := Set new. SystemUtils allBehaviorsDo: [:class | (self definesClass: class) ifTrue: [class selectorsAndMethodsDo: [:sel :meth | (self definesSelector: sel forClass: class) ifFalse: [references add: (MethodDefinition class: class selector: sel)]]]]. ^references
</methods> <methods> Refactory.Browser.AndEnvironment <category>accessing</category>
selectionIntervalFor: aString | interval | interval := super selectionIntervalFor: aString. interval notNil ifTrue: [^interval]. ^andedEnvironment selectionIntervalFor: aString
</methods> <methods> UI.WidgetPolicy <category>accessing</category>
inputFieldBorder ^BeveledBorder inset
</methods> <methods> Tools.InitializerDefinition <category>accessing</category>
asOverride ^Override forDataKey: key in: nameSpace
classOrNameSpace ^nameSpace
</methods> <methods> Tools.InitializerDefinition <category>testing</category>
isForSharedVariable ^true
isOverridden ^Override isOverriddenStatic: key in: nameSpace
</methods> <methods> Tools.InitializerDefinition <category>accessing</category>
protocol ^self classOrNameSpace asNameSpace organization categoryOfElement: self variableName
</methods> <methods> Tools.InitializerDefinition <category>printing</category>
simpleDisplayText ^self variableName asText
</methods> <methods> Tools.InitializerDefinition <category>accessing</category>
variableName ^key
</methods> <methods> UI.Win95WidgetPolicy <category>accessing</category>
inputFieldBorder ^Win95Border inset
</methods> <methods> UI.MacWidgetPolicy <category>accessing</category>
inputFieldBorder ^(MacBeveledBorder new) setBorderWidth: 2; setIsInset: true
</methods> <methods> Refactory.Browser.BrowserEnvironment <category>accessing</category>
selectionIntervalFor: aString | interval | self searchStrings isEmpty ifTrue: [^nil]. interval := self selectionParseTreeIntervalFor: aString. interval notNil ifTrue: [^interval]. self searchStrings do: [:each | | search index | search := each isSymbol ifTrue: [each keywords first] ifFalse: [each]. index := aString indexOfSubCollection: search startingAt: 1. index > 0 ifTrue: [^index to: index + search size - 1]]. ^nil
selectionParseTreeIntervalFor: aString | parseTree answerBlock | parseTree := RBParser parseMethod: aString onError: [:str :pos | ^nil]. answerBlock := [:aNode :answer | ^aNode sourceInterval]. self searchStrings do: [:each | | matcher tree | matcher := ParseTreeSearcher new. matcher matchesTree: (RBLiteralNode value: each) do: answerBlock. each isSymbol ifTrue: [tree := ParseTreeSearcher buildSelectorTree: each. tree notNil ifTrue: [matcher matchesTree: tree do: answerBlock]] ifFalse: [each notEmpty ifTrue: [tree := RBVariableNode named: each. matcher matchesTree: tree do: answerBlock; matchesArgumentTree: tree do: answerBlock]]. matcher executeTree: parseTree]. ^nil
</methods> <methods> Kernel.CodeComponent <category>testing</category>
hasComment ^self comment isEmpty not
needsComment ^self hasComment not
</methods> <methods> Kernel.NameSpace <category>testing</category>
hasComment "Accessing the comment directly is painfully slow for the UI which wants to hammer this often. Count on a nil commentKey meaning comment size = 0." ^self commentKey notNil
needsComment "Accessing the comment directly is painfully slow for the UI which wants to hammer this often. Count on a nil commentKey meaning comment size = 0." ^false
</methods> <methods> Graphics.VisualComponent <category>accessing</category>
asVisualPart "We wrap any VisualComponent with a GraphicPart to give it a presence in the part tree." ^GraphicPart graphic: self
</methods> <methods> Tools.MethodDefinition <category>testing</category>
isOverridden ^Override isOverriddenSelector: selector class: implementingClass
</methods> <methods> Refactory.Browser.BrowserApplicationModel class <category>interface specs</category>
emptySpec "UIPainter new openOnClass: self andSelector: #emptySpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 412 284 612 484 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )
</methods> <methods> Refactory.Browser.MetaNavigatorPart class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 706 589 895 612 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.RadioButtonSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0 0 0.5 -1 1 ) #name: #instance #model: #metaHolder #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #requestValueChangeSelector: #changeRequest ) #label: #(#{Kernel.UserMessage} #key: #Instance #defaultString: 'Instance' #catalogID: #browser) #select: false ) #(#{UI.RadioButtonSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 1 0 -1 1 -1 1 ) #name: #class #model: #metaHolder #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #requestValueChangeSelector: #changeRequest ) #label: #(#{Kernel.UserMessage} #key: #Class #defaultString: 'Class' #catalogID: #browser) #select: true ) #(#{UI.GroupBoxSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) ) ) ) )
</methods> <methods> Refactory.Browser.ListNavigatorPart class <category>interface specs</category>
basicWindowSpec "UIPainter new openOnClass: self andSelector: #basicWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #properties: #(#{UI.PropertyListDictionary} #dragOkSelector #wantToDrag: #dragEnterSelector #dragEnter: #dropSelector #drop: #dragStartSelector #doDrag: #dragOverSelector #dragOver: #dragExitSelector #dragLeave: ) #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #objectList #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #doubleClickSelector: #doubleClickItem #requestValueChangeSelector: #changeRequest ) #menu: #menu #multipleSelections: true #useModifierKeys: true #selectionType: #highlight ) ) ) )
</methods> <methods> Refactory.Browser.ProtocolItemNavigatorPart class <category>interface specs</category>
protocolWindowSpec "UIPainter new openOnClass: self andSelector: #protocolWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 700 500 900 700 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #properties: #(#{UI.PropertyListDictionary} #dragStartSelector #doDrag: #dragOkSelector #wantToDrag: ) #layout: #(#{Graphics.LayoutFrame} 0 0 26 0 0 1 0 1 ) #name: #objectList #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #requestValueChangeSelector: #changeRequest ) #menu: #menu #multipleSelections: true #useModifierKeys: true #selectionType: #highlight ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 25 0 ) #name: #protocolHolder #model: #protocolHolder #isReadOnly: true ) ) ) )
</methods> <methods> Refactory.Browser.RBActionEditor class <category>resources</category>
actionMenu "MenuEditor new openOnClass: self andSelector: #actionMenu" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_Add #defaultString: '&Add' #catalogID: #browser) #nameKey: #'Add Action Specification' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_Remove #defaultString: '&Remove' #catalogID: #browser) #nameKey: #'Remove Action Specification' #value: #action: ) ) #(2 ) nil ) decodeAsLiteralArray
</methods> <methods> Refactory.Browser.RBActionEditor class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #ActionEditor #defaultString: 'Action Editor' #catalogID: #browser) #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 491 417 1110 784 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 27 0 0 0.4 -35 1 ) #name: #actionList #flags: 15 #model: #actionList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changedActionSpecification #requestValueChangeSelector: #changeRequest ) #menu: #actionSpecificationMenu #useModifierKeys: true #selectionType: #highlight ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 2 2 ) #label: #(#{Kernel.UserMessage} #key: #ActionC #defaultString: 'Action:' #catalogID: #browser) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 10 0 1 0 ) #name: #nameLabel #label: #(#{Kernel.UserMessage} #key: #NameC #defaultString: 'Name:' #catalogID: #browser) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 8 0 -2 1 35 0 ) #name: #nameHolder #model: #nameHolder ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 4 0.4 -33 1 ) #orientation: #vertical ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 45 0 -2 1 135 0 ) #name: #descriptionHolder #model: #descriptionHolder #tabRequiresControl: true ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 45 0 1 0 ) #name: #descriptionLabel #label: #(#{Kernel.UserMessage} #key: #DescriptionC #defaultString: 'Description:' #catalogID: #browser) ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -150 1 305 0 -80 1 330 0 ) #name: #acceptButton #model: #acceptAction #label: #(#{Kernel.UserMessage} #key: #Accept #defaultString: 'Accept' #catalogID: #browser) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 1 305 0 -5 1 330 0 ) #name: #cancelButton #model: #changedActionSpecification #label: #(#{Kernel.UserMessage} #key: #Cancel #defaultString: 'Cancel' #catalogID: #browser) #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 143 0 -2 1 170 0 ) #name: #actionHolder #model: #actionHolder #type: #symbol ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 175 0 1 0 ) #name: #enabledLabel #label: #(#{Kernel.UserMessage} #key: #EnabledC #defaultString: 'Enabled:' #catalogID: #browser) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 173 0 -2 1 200 0 ) #name: #enabledHolder #model: #enabledHolder #type: #symbol ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 205 0 1 0 ) #name: #receiverLabel #label: #(#{Kernel.UserMessage} #key: #ReceiverC #defaultString: 'Receiver:' #catalogID: #browser) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 203 0 -2 1 230 0 ) #name: #receiverHolder #model: #receiverHolder #type: #symbol ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 95 0.4 233 0 -2 1 300 0 ) #name: #typeList #model: #typeList #useModifierKeys: true #selectionType: #highlight ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 235 0 1 0 ) #name: #typeLabel #label: #(#{Kernel.UserMessage} #key: #TypeC #defaultString: 'Type:' #catalogID: #browser) ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -50 0.75 -28 1 50 0.75 -2 1 ) #model: #saveActionsToMethod #label: #(#{Kernel.UserMessage} #key: #SaveMethod #defaultString: 'Save Method' #catalogID: #browser) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -50 0.5 -28 1 50 0.5 -2 1 ) #model: #saveActionsToFile #label: #(#{Kernel.UserMessage} #key: #SaveFile #defaultString: 'Save File' #catalogID: #browser) #defaultable: true ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -33 1 0 1 -31 1 ) ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -50 0.25 -28 1 50 0.25 -2 1 ) #model: #installActions #label: #(#{Kernel.UserMessage} #key: #Install #defaultString: 'Install' #catalogID: #browser) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} 90 0.4 145 0 1 0 ) #model: #browseActions #tabable: false #label: #(#{Kernel.UserMessage} #key: #ActionC #defaultString: 'Action:' #catalogID: #browser) #defaultable: true ) ) ) )
</methods> <methods> Refactory.Browser.ClassAndObjectNavigatorPart class <category>interface specs</category>
basicWindowSpec "UIPainter new openOnClass: self andSelector: #basicWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 700 500 900 700 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #properties: #(#{UI.PropertyListDictionary} #dragOkSelector #wantToDrag: #dragEnterSelector #dragEnter: #dropSelector #drop: #dragStartSelector #doDrag: #dragOverSelector #dragOver: #dragExitSelector #dragLeave: ) #layout: #(#{Graphics.LayoutFrame} 0 0 26 0 0 1 0 1 ) #name: #objectList #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #doubleClickSelector: #doubleClickItem #requestValueChangeSelector: #changeRequest ) #menu: #menu #multipleSelections: true #useModifierKeys: true #selectionType: #highlight ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 25 0 ) #name: #objectHolder #model: #objectHolder #tabable: false #isReadOnly: true #type: #object ) ) ) )
</methods> <methods> Refactory.Browser.TabNavigatorPart class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 512 384 712 584 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TabControlSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #subcanvas #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changedTab #requestValueChangeSelector: #changeRequest ) #labels: #() ) ) ) )
</methods> <methods> Refactory.Browser.NameSpaceItemTabNavigatorPart class <category>interface specs</category>
instanceVariableWindowSpec "UIPainter new openOnClass: self andSelector: #instanceVariableWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 512 384 712 584 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #instanceVariables #flags: 0 #majorKey: #{Refactory.Browser.InstanceVariableNavigatorPart} #minorKey: #windowSpec #clientKey: #instanceVariables ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #instanceVariableSelectors #flags: 0 #majorKey: #{Refactory.Browser.SelectorNavigatorPart} #minorKey: #windowSpec #clientKey: #instanceVariableSelectors ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'instanceVariables' #belowWidgets: 'instanceVariableSelectors' ) ) ) )
selectorWindowSpec "UIPainter new openOnClass: self andSelector: #selectorWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 980 720 1180 920 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #protocols #flags: 0 #majorKey: #{Refactory.Browser.SelectorProtocolNavigatorPart} #minorKey: #windowSpec #clientKey: #protocols ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #selectors #flags: 0 #majorKey: #{Refactory.Browser.SelectorNavigatorPart} #minorKey: #windowSpec #clientKey: #selectors ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'protocols' #belowWidgets: 'selectors' ) ) ) )
selectorWithProtocolWindowSpec "UIPainter new openOnClass: self andSelector: #selectorWithProtocolWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #selectorsWithProtocol #flags: 0 #majorKey: #{Refactory.Browser.SelectorNavigatorPart} #minorKey: #protocolWindowSpec #clientKey: #selectorsWithProtocol ) ) ) )
sharedVariableWindowSpec "UIPainter new openOnClass: self andSelector: #sharedVariableWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #categories #flags: 0 #majorKey: #{Refactory.Browser.SharedVariableProtocolNavigatorPart} #minorKey: #windowSpec #clientKey: #categories ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #sharedVariables #flags: 0 #majorKey: #{Refactory.Browser.SharedVariableNavigatorPart} #minorKey: #windowSpec #clientKey: #sharedVariables ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'categories' #belowWidgets: 'sharedVariables' ) ) ) )
sharedVariableWithProtocolWindowSpec "UIPainter new openOnClass: self andSelector: #sharedVariableWithProtocolWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #sharedVariablesWithProtocol #flags: 0 #majorKey: #{Refactory.Browser.SharedVariableNavigatorPart} #minorKey: #protocolWindowSpec #clientKey: #sharedVariablesWithProtocol ) ) ) )
</methods> <methods> Refactory.Browser.CodeComponentTabNavigatorPart class <category>interface specs</category>
packageHierarchyWindowSpec "UIPainter new openOnClass: self andSelector: #packageHierarchyWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #hierarchyClasses #flags: 0 #majorKey: #{Refactory.Browser.HierarchyClassNavigatorPart} #minorKey: #windowSpec #clientKey: #hierarchyClasses ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #hierarchyPackages #flags: 0 #majorKey: #{Refactory.Browser.HierarchyPundleNavigatorPart} #minorKey: #windowSpec #clientKey: #hierarchyPackages ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'hierarchyClasses' #belowWidgets: 'hierarchyPackages' ) ) ) )
packageWindowSpec "UIPainter new openOnClass: self andSelector: #packageWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #packages #flags: 0 #majorKey: #{Refactory.Browser.PundleNavigatorPart} #minorKey: #windowSpec #clientKey: #packages ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #classes #flags: 0 #majorKey: #{Refactory.Browser.ClassNavigatorPart} #minorKey: #windowSpec #clientKey: #classes ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'packages' #belowWidgets: 'classes' ) ) ) )
parcelHierarchyWindowSpec "UIPainter new openOnClass: self andSelector: #parcelHierarchyWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #hierarchyClasses #flags: 0 #majorKey: #{Refactory.Browser.HierarchyClassNavigatorPart} #minorKey: #windowSpec #clientKey: #hierarchyClasses ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #hierarchyParcels #flags: 0 #majorKey: #{Refactory.Browser.HierarchyParcelNavigatorPart} #minorKey: #windowSpec #clientKey: #hierarchyParcels ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'hierarchyClasses' #belowWidgets: 'hierarchyParcels' ) ) ) )
parcelWindowSpec "UIPainter new openOnClass: self andSelector: #parcelWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #bounds: #(#{Graphics.Rectangle} 1161 871 1361 1071 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #parcels #flags: 0 #majorKey: #{Refactory.Browser.ParcelNavigatorPart} #minorKey: #windowSpec #clientKey: #parcels ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #classes #flags: 0 #majorKey: #{Refactory.Browser.ClassNavigatorPart} #minorKey: #windowSpec #clientKey: #classes ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #ResizingSplitter1 #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'parcels' #belowWidgets: 'classes' ) ) ) )
</methods> <methods> Store.BundleSpecEditor class <category>interface specs</category>
windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #BundleEditor #defaultString: 'Bundle Editor' #catalogID: #packages) #min: #(#{Core.Point} 350 250 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 424 368 1024 768 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 65 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #AvailableC #defaultString: 'Available:' #catalogID: #packages) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.5 65 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #BundleContentsC #defaultString: 'Bundle contents:' #catalogID: #packages) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 35 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #BundleNameC #defaultString: 'Bundle name: ' #catalogID: #packages) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 125 0 10 0 -85 1 35 0 ) #name: #bundleName #model: #bundleName #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #bundleNameChanged ) #isReadOnly: false ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 10 0 65 0 -80 0.5 -45 1 ) #name: #availablePundlesView #flags: 15 #model: #availablePundles #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #okSelection: ) #multipleSelections: true #selectionType: #highlight ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 0.5 65 0 -5 0.5 90 0 ) #name: #addButton #model: #addToBundleContents #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #label: #(#{Kernel.UserMessage} #key: #AddArrow #defaultString: 'Add >' #catalogID: #packages) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 0.5 95 0 -5 0.5 120 0 ) #name: #removeButton #model: #removeBundleItem #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #label: #(#{Kernel.UserMessage} #key: #Remove #defaultString: '< Remove' #catalogID: #packages) #defaultable: true ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 65 0 -85 1 -45 1 ) #name: #bundleContentsView #flags: 15 #model: #bundleContents ) #(#{UI.ActionButtonSpec} #properties: #(#{UI.PropertyListDictionary} #labelFromApplication false ) #layout: #(#{Graphics.LayoutFrame} -80 1 95 0 -10 1 120 0 ) #name: #downButton #model: #moveBundleItemDown #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #tabable: false #label: #(#{Kernel.UserMessage} #key: #MoveDown #defaultString: 'Move Down' #catalogID: #packages) #defaultable: true ) #(#{UI.ActionButtonSpec} #properties: #(#{UI.PropertyListDictionary} #labelFromApplication false ) #layout: #(#{Graphics.LayoutFrame} -80 1 65 0 -10 1 90 0 ) #name: #upButton #model: #moveBundleItemUp #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #tabable: false #label: #(#{Kernel.UserMessage} #key: #MoveUp #defaultString: 'Move Up' #catalogID: #packages) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -80 1 130 0 -10 1 155 0 ) #name: #validateLoadOrder #model: #validateLoadOrder #label: #(#{Kernel.UserMessage} #key: #Validate #defaultString: 'Validate' #catalogID: #packages) #isDefault: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -85 1 -35 1 -10 1 -10 1 ) #name: #cancelButton #model: #cancel #label: #(#{Kernel.UserMessage} #key: #Cancel #defaultString: 'Cancel' #catalogID: #packages) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -165 1 -35 1 -90 1 -10 1 ) #name: #acceptButton #model: #accept #label: #(#{Kernel.UserMessage} #key: #OK #defaultString: 'OK' #catalogID: #packages) #isDefault: true #defaultable: true ) ) ) )
windowSpecWithEnclosingBundle "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #BundleEditor #defaultString: 'Bundle Editor' #catalogID: #packages ) #min: #(#{Core.Point} 350 250 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 233 560 833 960 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 94 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #AvailableC #defaultString: 'Available:' #catalogID: #packages ) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.500673 94 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #BundleContentsC #defaultString: 'Bundle contents:' #catalogID: #packages ) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 35 0 0 1 ) #label: #(#{Kernel.UserMessage} #key: #BundleNameC #defaultString: 'Bundle name: ' #catalogID: #packages ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 125 0 10 0 -85 1 35 0 ) #name: #bundleName #model: #bundleName #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #bundleNameChanged ) #isReadOnly: false ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 10 0 95 0 -80 0.5 -45 1 ) #name: #availablePundlesView #flags: 15 #model: #availablePundles #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #okSelection: ) #multipleSelections: true #selectionType: #highlight ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 0.5 95 0 -5 0.5 120 0 ) #name: #addButton #model: #addToBundleContents #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #label: #(#{Kernel.UserMessage} #key: #AddArrow #defaultString: 'Add >' #catalogID: #packages ) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 0.5 125 0 -5 0.5 150 0 ) #name: #removeButton #model: #removeBundleItem #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #label: #(#{Kernel.UserMessage} #key: #Remove #defaultString: '< Remove' #catalogID: #packages ) #defaultable: true ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 95 0 -85 1 -45 1 ) #name: #bundleContentsView #flags: 15 #model: #bundleContents ) #(#{UI.ActionButtonSpec} #properties: #(#{UI.PropertyListDictionary} #labelFromApplication false ) #layout: #(#{Graphics.LayoutFrame} -80 1 125 0 -10 1 150 0 ) #name: #downButton #model: #moveBundleItemDown #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #tabable: false #label: #(#{Kernel.UserMessage} #key: #MoveDown #defaultString: 'Move Down' #catalogID: #packages ) #defaultable: true ) #(#{UI.ActionButtonSpec} #properties: #(#{UI.PropertyListDictionary} #labelFromApplication false ) #layout: #(#{Graphics.LayoutFrame} -80 1 95 0 -10 1 120 0 ) #name: #upButton #model: #moveBundleItemUp #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #disturb ) #tabable: false #label: #(#{Kernel.UserMessage} #key: #MoveUp #defaultString: 'Move Up' #catalogID: #packages ) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -80 1 160 0 -10 1 185 0 ) #name: #validateLoadOrder #model: #validateLoadOrder #label: #(#{Kernel.UserMessage} #key: #Validate #defaultString: 'Validate' #catalogID: #packages ) #isDefault: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -85 1 -35 1 -10 1 -10 1 ) #name: #cancelButton #model: #cancel #label: #(#{Kernel.UserMessage} #key: #Cancel #defaultString: 'Cancel' #catalogID: #packages ) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -165 1 -35 1 -90 1 -10 1 ) #name: #acceptButton #model: #accept #label: #(#{Kernel.UserMessage} #key: #OK #defaultString: 'OK' #catalogID: #packages ) #isDefault: true #defaultable: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 10 46 ) #name: #Label1 #label: #(#{Kernel.UserMessage} #key: #ParentBundleC #defaultString: 'Parent bundle:' #catalogID: #packages ) ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 125 0 45 0 -85 1 68 0 ) #name: #ParentBundleComboBox #model: #parentBundleHolder #isReadOnly: false #type: #object #comboList: #availableBundles #readSelector: #bundleNamed: #printSelector: #nameForBundle: ) ) ) )
</methods> <methods> Store.BundleSpecEditor class <category>resources</category>
downArrow "UIMaskEditor new openOnClass: self andSelector: #downArrow" <resource: #image> ^CachedImage on: (Image extent: 13@8 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 127 240 0 0 63 224 0 0 31 192 0 0 15 128 0 0 7 0 0 0 2 0 0 0 0 0 0 0])
upArrow "UIMaskEditor new openOnClass: self andSelector: #upArrow" <resource: #image> ^CachedImage on: (Image extent: 13@8 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 2 0 0 0 7 0 0 0 15 128 0 0 31 192 0 0 63 224 0 0 127 240 0 0 0 0 0 0])
</methods> <methods> Refactory.Browser.EnvironmentEditor class <category>resources</category>
categoryMenu "MenuEditor new openOnClass: self andSelector: #categoryMenu" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #A_dd #defaultString: 'A&dd' #catalogID: #browser) #nameKey: #'Check Category' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #Re_move #defaultString: 'Re&move' #catalogID: #browser) #nameKey: #'Uncheck Category' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_AddAll #defaultString: '&Add All...' #catalogID: #browser) #nameKey: #'Check All Categories' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_RemoveAll #defaultString: '&Remove All...' #catalogID: #browser) #nameKey: #'Uncheck All Categories' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_FindClass #defaultString: '&Find Class' #catalogID: #browser) #nameKey: #'Find Class' #value: #action: ) ) #(2 2 1 ) nil ) decodeAsLiteralArray
classMenu "MenuEditor new openOnClass: self andSelector: #classMenu" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #A_dd #defaultString: 'A&dd' #catalogID: #browser) #nameKey: #'Check Class' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #Re_move #defaultString: 'Re&move' #catalogID: #browser) #nameKey: #'Uncheck Class' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_AddAll #defaultString: '&Add All...' #catalogID: #browser) #nameKey: #'Check All Classes' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_RemoveAll #defaultString: '&Remove All...' #catalogID: #browser) #nameKey: #'Uncheck All Classes' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #AddSuperclasses #defaultString: 'Add Superclasses' #catalogID: #browser) #nameKey: #'Check All Superclasses' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #RemoveSuperclasses #defaultString: 'Remove Superclasses' #catalogID: #browser) #nameKey: #'Uncheck All Superclasses' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #AddSubclasses #defaultString: 'Add Subclasses' #catalogID: #browser) #nameKey: #'Check All Subclasses' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #RemoveSubclasses #defaultString: 'Remove Subclasses' #catalogID: #browser) #nameKey: #'Uncheck All Subclasses' #value: #action: ) ) #(2 2 2 2 ) nil ) decodeAsLiteralArray
protocolMenu "MenuEditor new openOnClass: self andSelector: #protocolMenu" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #A_dd #defaultString: 'A&dd' #catalogID: #browser) #nameKey: #'Check Protocol' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #Re_move #defaultString: 'Re&move' #catalogID: #browser) #nameKey: #'Uncheck Protocol' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_AddAll #defaultString: '&Add All...' #catalogID: #browser) #nameKey: #'Check All Protocols' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_RemoveAll #defaultString: '&Remove All...' #catalogID: #browser) #nameKey: #'Uncheck All Protocols' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_FindMethodDot #defaultString: '&Find Method...' #catalogID: #browser) #nameKey: #'Find Method' #value: #action: ) ) #(2 2 1 ) nil ) decodeAsLiteralArray
selectorMenu "MenuEditor new openOnClass: self andSelector: #selectorMenu" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #A_dd #defaultString: 'A&dd' #catalogID: #browser) #nameKey: #'Check Method' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #Re_move #defaultString: 'Re&move' #catalogID: #browser) #nameKey: #'Uncheck Method' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_AddAll #defaultString: '&Add All...' #catalogID: #browser) #nameKey: #'Check All Methods' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #_RemoveAll #defaultString: '&Remove All...' #catalogID: #browser) #nameKey: #'Uncheck All Methods' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #AddAllImplementors #defaultString: 'Add All Implementors' #catalogID: #browser) #nameKey: #'Check All Implementors' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #RemoveAllImplementors #defaultString: 'Remove All Implementors' #catalogID: #browser) #nameKey: #'Uncheck All Implementors' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #AddAllSenders #defaultString: 'Add All Senders' #catalogID: #browser) #nameKey: #'Check All Senders' #value: #action: ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #RemoveAllSenders #defaultString: 'Remove All Senders' #catalogID: #browser) #nameKey: #'Uncheck All Senders' #value: #action: ) ) #(2 2 2 2 ) nil ) decodeAsLiteralArray
</methods> <methods> Refactory.Browser.EnvironmentEditor class <category>interface specs</category>
classWindowSpec "UIPainter new openOnClass: self andSelector: #classWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 800 600 1289 877 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #categoryList #flags: 0 #majorKey: #{Refactory.Browser.CategoryNavigatorPart} #minorKey: #windowSpec #clientKey: #CategoryNavigatorPart ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #classList #flags: 0 #majorKey: #{Refactory.Browser.ClassNavigatorPart} #minorKey: #windowSpec #clientKey: #ClassNavigatorPart ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'categoryList' #belowWidgets: 'classList' ) ) ) )
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 800 600 1289 877 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 -2 0.5 ) #name: #categoryList #flags: 0 #majorKey: #{Refactory.Browser.CategoryNavigatorPart} #minorKey: #windowSpec #clientKey: #CategoryNavigatorPart ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 -2 0.5 ) #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'categoryList' #belowWidgets: 'classList' ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -2 0.5 0 1 2 0.5 ) #horizontal: true #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'categoryList classList meta' #belowWidgets: 'protocolList selectorList meta' ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 2 0.5 2 0.5 0 1 ) #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'protocolList' #belowWidgets: 'selectorList' ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 -26 0.5 0 1 -2 0.5 ) #name: #meta #flags: 0 #majorKey: #{Refactory.Browser.MetaNavigatorPart} #minorKey: #windowSpec #clientKey: #MetaNavigatorPart ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 -27 0.5 ) #name: #classList #flags: 0 #majorKey: #{Refactory.Browser.ClassNavigatorPart} #minorKey: #windowSpec #clientKey: #ClassNavigatorPart ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 2 0.5 -2 0.5 0 1 ) #name: #protocolList #flags: 0 #majorKey: #{Refactory.Browser.SelectorProtocolNavigatorPart} #minorKey: #windowSpec #clientKey: #SelectorProtocolNavigatorPart ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 2 0.5 0 1 0 1 ) #name: #selectorList #flags: 0 #majorKey: #{Refactory.Browser.SelectorNavigatorPart} #minorKey: #windowSpec #clientKey: #SelectorNavigatorPart ) ) ) )
</methods> <methods> Refactory.Browser.BrowserDialog class <category>resources</category>
disabledDownIcon "UIMaskEditor new openOnClass: self andSelector: #disabledDownIcon" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue white; at: 2 put: (Graphics.ColorValue scaledRed: 4227 scaledGreen: 4227 scaledBlue: 4227); yourself)) usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 254 0 0 63 252 0 0 31 248 0 0 15 240 0 0 7 224 0 0 3 192 0 0 1 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
disabledDownIconMask "UIMaskEditor new openOnClass: self andSelector: #disabledDownIconMask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 254 0 0 63 252 0 0 31 248 0 0 15 240 0 0 7 224 0 0 3 192 0 0 1 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
disabledUpIcon "UIMaskEditor new openOnClass: self andSelector: #disabledUpIcon" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue white; at: 2 put: (Graphics.ColorValue scaledRed: 4227 scaledGreen: 4227 scaledBlue: 4227); yourself)) usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 128 0 0 3 192 0 0 7 224 0 0 15 240 0 0 31 248 0 0 63 252 0 0 127 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
disabledUpIconMask "UIMaskEditor new openOnClass: self andSelector: #disabledUpIconMask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 128 0 0 3 192 0 0 7 224 0 0 15 240 0 0 31 248 0 0 63 252 0 0 127 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
downIcon "UIMaskEditor new openOnClass: self andSelector: #downIcon" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette blackWhite usingBits: #[255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0 128 1 0 0 192 3 0 0 224 7 0 0 240 15 0 0 248 31 0 0 252 63 0 0 254 127 0 0 255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0])
downIconMask "UIMaskEditor new openOnClass: self andSelector: #downIconMask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 254 0 0 63 252 0 0 31 248 0 0 15 240 0 0 7 224 0 0 3 192 0 0 1 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
upIcon "UIMaskEditor new openOnClass: self andSelector: #upIcon" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette blackWhite usingBits: #[255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0 254 127 0 0 252 63 0 0 248 31 0 0 240 15 0 0 224 7 0 0 192 3 0 0 128 1 0 0 255 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0])
upIconMask "UIMaskEditor new openOnClass: self andSelector: #upIconMask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 128 0 0 3 192 0 0 7 224 0 0 15 240 0 0 31 248 0 0 63 252 0 0 127 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
</methods> <methods> Refactory.Browser.ClassAndMethodTabNavigatorPart class <category>interface specs</category>
classesSpec "UIPainter new openOnClass: self andSelector: #classesSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #classes #flags: 0 #majorKey: #{Refactory.Browser.ClassAndObjectNavigatorPart} #minorKey: #windowSpec #clientKey: #classes ) ) ) )
methodsSpec "UIPainter new openOnClass: self andSelector: #methodsSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 800 600 1000 800 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #methods #flags: 0 #majorKey: #{Refactory.Browser.MethodNavigatorPart} #minorKey: #windowSpec #clientKey: #methods ) ) ) )
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 887 750 1087 950 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TabControlSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -2 0.5 0 1 ) #name: #subcanvas #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changedTab #requestValueChangeSelector: #changeRequest ) #labels: #() ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.5 0 0 0 1 0 1 ) #name: #selectors #flags: 0 #majorKey: #{Refactory.Browser.NameSpaceItemTabNavigatorPart} #minorKey: #windowSpec #clientKey: #selectors ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} -2 0.5 0 0 2 0.5 0 1 ) #name: #splitter #horizontal: false #minAboveSize: 30 #minBelowSize: 30 #aboveWidgets: 'subcanvas' #belowWidgets: 'selectors' ) ) ) )
</methods> <methods> Refactory.Browser.PundleNavigatorPart class <category>interface specs</category>
basicWindowSpec "UIPainter new openOnClass: self andSelector: #basicWindowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #browser) #bounds: #(#{Graphics.Rectangle} 512 384 712 584 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TreeViewSpec} #properties: #(#{UI.PropertyListDictionary} #dragOkSelector #wantToDrag: #dragEnterSelector #dragEnter: #dragOverSelector #dragOver: #dragStartSelector #doDrag: #dropSelector #drop: #dragExitSelector #dragLeave: ) #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #objectList #model: #objectList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changed #doubleClickSelector: #doubleClickItem #requestValueChangeSelector: #changeRequest ) #menu: #menu #multipleSelections: true #useModifierKeys: true #selectionType: #highlight #useIcons: #other #iconSelectors: #(#icon ) ) ) ) )
</methods> <methods> Tools.ListIconLibrary class <category>resources</category>
modifiedBundle16x16 "UIMaskEditor new openOnClass: self andSelector: #modifiedBundle16x16" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 7 bitsPerPixel: 8 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(0 0 0)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7549 7613 6681)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6713 6746 5942)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6232 6296 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7709 7741 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7870 7870 5782)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5975 6071 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5878 6007 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6489 6521 5750)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7356 7452 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6424 6456 5718)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5814 5910 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7292 7356 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5718 5846 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7035 7131 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6938 6970 6167)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8095 8127 5975)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7259 7227 5268)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7227 7259 5268)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7870 7870 5814)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6167 6232 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6071 6167 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6553 6585 5814)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7998 7998 7035)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7292 7388 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7131 7163 6296)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5653 5782 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7806 7838 6906)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7420 7420 5429)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7035 7163 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6970 6970 6167)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8127 8095 6007)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7998 7998 5910)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7099 7067 5139)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6617 6649 5878)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7934 7966 7003)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6810 6778 4915)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7870 7902 6970)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7645 7677 6778)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8030 7998 5910)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6874 7035 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6906 7003 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6713 6874 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7741 7806 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6553 6713 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7099 7099 5139)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7709 7741 5686)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6360 6585 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6392 6553 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7420 7484 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6810 6810 4915)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7163 7259 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 6071)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7709 7741 6842)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7035 7067 6232)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6906 7035 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6874 6874 6103)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6746 6874 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6296 6360 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6392 6585 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6938 6938 5011)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6489 6489 5750)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5782 5910 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6232 6424 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7549 7581 5557)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5718 5814 6874)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7195 7259 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7163 7292 8191)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@5MST5MST5MP@WE1\#IQL@MST5MST5MST@E3P_I0T7@CT5MST5MST5@A\PHA$@G @5MP@@@@@@@@@#HA$@MP@@MST@J2,+C@@@IQL7@CT5MST5@B,IFC,@@A,.C0@5MST@MP@+FDPC@@@6PS$@MP@@J0@@ADPNE@@@I!0QKP@$@B,+ACL]JAT@@@DRHS42B@@IFDL]JR(F@@@Q@"HVO (@C@@@NC(,A0@@@@@@@@@@@@@5@CD,OC<@MST5MST5MST5MP@XK4@M@CT5MST5MST5MST@L@-BF @5MST5MST5MST5@@@@@@@@MST5MST5MST5MST5MST5MP@a'))
modifiedBundle16x16mask "UIMaskEditor new openOnClass: self andSelector: #modifiedBundle16x16mask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[255 0 0 0 255 0 0 0 255 0 0 0 255 63 0 0 251 63 0 0 248 63 0 0 248 191 0 0 251 255 0 0 255 255 0 0 255 255 0 0 255 255 0 0 255 191 0 0 0 63 0 0 0 63 0 0 0 63 0 0 0 0 0 0])
modifiedPackage16x16 "UIMaskEditor new openOnClass: self andSelector: #modifiedPackage16x16" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 6 bitsPerPixel: 8 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(0 0 0)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6360 6328 4529)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6328 6360 4529)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6135 6135 4401)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6521 6489 4690)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6489 6521 4690)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6521 6521 4658)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5139 5139 3630)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4947 4979 3501)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5942 5942 4240)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5782 5750 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8095 0)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7388 7420 5429)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5750 5782 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5782 5782 4079)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 6071)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6135 6103 4369)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6489 6489 4658)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6778 6810 4915)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5300 5300 5300)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7998 7998 5910)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5942 5910 4208)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5910 5942 4208)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8159 4850)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8159 6199)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5782 5782 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4786 4786 3341)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8159 7388)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5525 5525 3919)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6328 6328 4529)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8127 4818)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4979 4947 3469)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6135 6135 4369)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5750 5750 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6521 6489 4658)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6489 6489 4690)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5942 5942 4208)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5910 5942 4240)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5364 5364 3790)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7099 7099 5139)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 6199)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4786 4786 3373)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4786 4818 3341)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 7388)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5557 5525 3919)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(5172 5172 3630)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6328 6328 4561)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8159 4818)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(7741 7741 5686)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(3501 3501 3501)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4979 4979 3469)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: (ByteArray fromPackedString: 'A@PDA@PDA@PDA@PDA@PDA@PDA@PDA@@DA@PDA@PDA@PDA@PDA@@L@@P@A@PDA@PDA@PDA@@LC@0@A@@DA@PDA@PDA@@LC@0@KA0,@@@@A@PDA@@LC@0@JQ$YJQ$2D@@DA@PD@@0@FA<0G3@2DA4@A@PD@@PTEAPTEAPTDA4''@@PDA@@PA@PDA@PDAB4''B@@DA@P@ERL$D"PEA \''K#L@A@PD@CD^K18AG!8BK"@*@@PDA@@MHRD!HPL!DP$[@@PDA@P@JBTJE"T&E2X+@@PDA@PD@ALKF"HKC <Z@@PDA@PDA@P@@@@@@@@@@@PDA@PDA@PDA@PDA@PDA@PDA@PDA@@a'))
modifiedPackage16x16mask "UIMaskEditor new openOnClass: self andSelector: #modifiedPackage16x16mask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 2 0 0 0 7 64 0 0 15 224 0 0 31 252 0 0 63 254 0 0 31 254 0 0 63 254 0 0 63 254 0 0 63 254 0 0 63 254 0 0 63 252 0 0 63 248 0 0 63 240 0 0 31 224 0 0 0 0 0 0])
warningOverlay16x16 "UIMaskEditor new openOnClass: self andSelector: #warningOverlay16x16" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 5 bitsPerPixel: 8 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(1542 1542 1542)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 899)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 3565)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(385 385 385)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6264 3758 2345)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 1574)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(2249 2249 2249)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4112 4112 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 1542)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 2249)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(932 932 932)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(2955 2955 2955)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(4497 4497 4497)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 2955)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(6264 3341 1670)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(3598 3598 3565)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 4112)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(1542 1542 1574)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(3565 3598 3565)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 932)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: (ByteArray fromPackedString: '@0LC@0LC@0LC@0LCCPLC@0LC@0LC@0LC@0LCBADH@0LC@0LC@0LC@0LC@1@BD0LC@0LC@0LC@0LC@00NC 8L@0LC@0LC@0LC@0LGB TJA0LC@0LC@0LC@0LRBPXOBP$R@0LC@0LC@0LCB0DTEAPTB0LC@0LC@0LC@0LDA@PDA@LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0@a'))
warningOverlay16x16mask "UIMaskEditor new openOnClass: self andSelector: #warningOverlay16x16mask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 28 0 0 0 62 0 0 0 62 0 0 0 127 0 0 0 127 0 0 0 255 0 0 0 255 0 0 0 127 0 0 0 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
</methods> <initialize> Refactory.Browser.BrowserApplicationModel </initialize> <initialize> Refactory.Browser.PundleItem </initialize> "Imported Classes:" self error: 'Attempting to file-in parcel imports. Choose terminate or close' <class> <name>Object</name> <environment>Core</environment> <super></super> <private>false</private> none <imports></imports> <category>Kernel-Objects</category> <attributes> <package>Kernel-Objects</package> </attributes> </class> <class> <name>VisualComponent</name> <environment>Graphics</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>Graphics-Visual Objects</category> <attributes> <package>Graphics-Visual Objects</package> </attributes> </class> <class> <name>VisualPart</name> <environment>Graphics</environment> <super>Graphics.VisualComponent</super> <private>false</private> none container eventHandlers properties <imports></imports> <category>Graphics-Visual Objects</category> <attributes> <package>Graphics-Visual Objects</package> </attributes> </class> <class> <name>Magnitude</name> <environment>Core</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>Magnitude-General</category> <attributes> <package>Magnitude-General</package> </attributes> </class> <class> <name>GeneralMethodDefinition</name> <environment>Tools</environment> <super>Core.Magnitude</super> <private>false</private> none <imports></imports> <category>Tools-Programming</category> <attributes> <package>Tools-Programming</package> </attributes> </class> <class> <name>MethodDefinition</name> <environment>Tools</environment> <super>Tools.GeneralMethodDefinition</super> <private>false</private> none inheritingClass implementingClass selector extraText <imports></imports> <category>Tools-Programming</category> <attributes> <package>Tools-Programming</package> </attributes> </class> <class> <name>WidgetPolicy</name> <environment>UI</environment> <super>Core.Object</super> <private>false</private> none defaultWidgetColors <imports></imports> <category>UIBuilder-Support</category> <attributes> <package>UIBuilder-Support</package> </attributes> </class> <class> <name>BrowserEnvironment</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none label searchStrings <imports></imports> <category>Browser-Environments</category> <attributes> <package>Browser-Environments</package> </attributes> </class> <class> <name>BrowserEnvironmentWrapper</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.BrowserEnvironment</super> <private>false</private> none environment <imports></imports> <category>Browser-Environments</category> <attributes> <package>Browser-Environments</package> </attributes> </class> <class> <name>AndEnvironment</name> <environment>Refactory.Browser</environment> <super>Refactory.Browser.BrowserEnvironmentWrapper</super> <private>false</private> none andedEnvironment <imports></imports> <category>Browser-Environments</category> <attributes> <package>Browser-Environments</package> </attributes> </class> <class> <name>ClassDescription</name> <environment>Core</environment> <super>Core.Behavior</super> <private>false</private> none instanceVariables organization <imports></imports> <category>Kernel-Classes</category> <attributes> <package>Kernel-Classes</package> </attributes> </class> <class> <name>Metaclass</name> <environment>Core</environment> <super>Core.ClassDescription</super> <private>false</private> none thisClass <imports></imports> <category>Kernel-Classes</category> <attributes> <package>Kernel-Classes</package> </attributes> </class> <class> <name>Class</name> <environment>Core</environment> <super>Core.ClassDescription</super> <private>false</private> none name classPool environment <imports></imports> <category>Kernel-Classes</category> <attributes> <package>Kernel-Classes</package> </attributes> </class> <class> <name>NameSpace</name> <environment>Kernel</environment> <super>Kernel.GeneralNameSpace</super> <private>false</private> none parent name <imports></imports> <category>System-Name Spaces</category> <attributes> <package>System-Name Spaces</package> </attributes> </class> <class> <name>CodeComponent</name> <environment>Kernel</environment> <super>Core.Object</super> <private>false</private> none name properties <imports></imports> <category>System-Code Components</category> <attributes> <package>System-Code Components</package> </attributes> </class> <class> <name>Parcel</name> <environment>Kernel</environment> <super>Kernel.CodeComponent</super> <private>false</private> none definedObjects definedClasses definedBindings classSelectors namedObjects dirty loaded parcels classParcelMap parcelFileInfoCache parcelFileDirectoryCache dependents <imports></imports> <category>System-Code Components</category> <attributes> <package>System-Code Components</package> </attributes> </class> <class> <name>InitializerDefinition</name> <environment>Tools</environment> <super>Tools.GeneralMethodDefinition</super> <private>false</private> none nameSpace key <imports></imports> <category>Tools-Programming</category> <attributes> <package>Tools-Programming</package> </attributes> </class> <class> <name>ApplicationModel</name> <environment>UI</environment> <super>UI.Model</super> <private>false</private> none builder uiSession eventHandlers savedWindowInformation <imports></imports> <category>UIBuilder-Framework</category> <attributes> <package>UIBuilder-Framework</package> </attributes> </class> <class> <name>MultiSelectionInList</name> <environment>UI</environment> <super>UI.SelectionInList</super> <private>false</private> none <imports></imports> <category>UIBasics-Collections</category> <attributes> <package>UIBasics-Collections</package> </attributes> </class> <class> <name>GraphicsContext</name> <environment>Graphics</environment> <super>Core.Object</super> <private>false</private> none medium clipOriginX clipOriginY clipWidth clipHeight lineWidth capStyle joinStyle deviceFont devicePaint offsetX offsetY phaseX phaseY scaleX scaleY font paint paintPolicy fontPolicy clientData paintPreferences <imports></imports> <category>Graphics-Support</category> <attributes> <package>Graphics-Support</package> </attributes> </class> <class> <name>MacWidgetPolicy</name> <environment>UI</environment> <super>UI.WidgetPolicy</super> <private>false</private> none <imports></imports> <category>UILooks-Mac</category> <attributes> <package>UILooks-Mac</package> </attributes> </class> <class> <name>UnparceledParcel</name> <environment>Refactory.Browser</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>Browser-Navigator Parts</category> <attributes> <package>Browser-Environments</package> </attributes> </class> <class> <name>CompositePart</name> <environment>Graphics</environment> <super>Graphics.VisualPart</super> <private>false</private> none components preferredBounds <imports></imports> <category>Graphics-Visual Objects</category> <attributes> <package>Graphics-Visual Objects</package> </attributes> </class> <class> <name>MultiSelectionSequenceView</name> <environment>UI</environment> <super>UI.SequenceView</super> <private>false</private> none selections lastSelectionIndex <imports></imports> <category>UIBasics-Components</category> <attributes> <package>UIBasics-Components</package> </attributes> </class> <class> <name>Win95WidgetPolicy</name> <environment>UI</environment> <super>UI.WidgetPolicy</super> <private>false</private> none <imports></imports> <category>UILooks-MSWin</category> <attributes> <package>UILooks-MSWin</package> </attributes> </class> <class> <name>SimpleDialog</name> <environment>UI</environment> <super>UI.ApplicationModel</super> <private>false</private> none close accept cancel preBuildBlock postBuildBlock postOpenBlock escapeIsCancel parentView <imports></imports> <category>Interface-Dialogs</category> <attributes> <package>Interface-Dialogs</package> </attributes> </class> <class> <name>WinXPWidgetPolicy</name> <environment>UI</environment> <super>UI.Win95WidgetPolicy</super> <private>false</private> none <imports></imports> <category>UILooks-WinXP</category> <attributes> <package>UILooks-WinXP</package> </attributes> </class>