Skip to content
This repository has been archived by the owner on May 17, 2018. It is now read-only.

Capability to Assign Multiple Model Elements to Modes Simultaneously #200

philip-alldredge opened this issue Feb 27, 2017 · 5 comments


Copy link

philip-alldredge commented Feb 27, 2017

assign multiple model elements to modes simultaneously


The previous implementation used a modal dialog and only allowed selecting a single element. When changes were made, all the modes and mode transitions for that element were removed and recreated.

New Implementation

  • Should replace the ConfigureInModesCommand and SetInModeFeaturesDialog classes with property section(s) that allow configuring the modes and transitions to which the element applies.
  • Should handle selecting multiple diagram/modal elements.
    • However, it only needs to be visible when all elements have the same graphical parent. In other words, all selected diagram elements have the same parent.
    • If the selected elements are not in the same mode(s), then greyed tri-state check boxes should be used to represent that. Changes to the value should update all of the selected elements.
  • Should make changes immediately while the user is selecting things.
  • Should work for nested modal elements. In other words it should work for modal elements which are contained in a subcomponent.
  • Should handle the same cases as the other version.
    • Allow selecting the all modes options
    • Mode bindings/derived modes/requires modes(for subcomponents)
    • Modes
    • Mode Transitions
  • Should be placed in the AADL property tab. Depending on how cluttered the tab gets and usability, we may need to move it to another tab.
  • Should make use of the BusinessObjectSelection class. AccessPropertySection and DirectionalFeatureProperty section are good examples.
    Get intersection of all non-empty sets of required modes. If empty, hide the drop-down for the mode binding's derived mode. Otherwise, show.
  • The derived mode of mode bindings is not set for any subcomponent which does not have required modes.
  • Mode transitions will be shown if any of the selected modal elements supports being in a mode transition.
  • The current command only supports subcomponents, connections, and flow specifications. The property section should support all modal elements. This includes ModalElement, ModalPath, and Subcomponent.
  • Edit Flow dialog has an option to edit modes which uses the currently dialog. This capability should be reworked to reuse code from the property section.
  • If a modal element is owned by a different classifier implementation than the one that it is contained in graphically, then the modal element should still be editable. However, the user will only be able to select valid modes for that classifier. If modal elements are owned by different classifiers but have the same parent graphically, there could be different sets of modes for each one. In this case, the user should only be able to toggle modes which are applicable to all selected modal elements.
  • The All Modes check box should be replaced with a label that provides information about elements being in all moves. The label should accurately describe the "all modes" status. Exact wording(s) is TBD. Consider that all selected elements may not agree regarding their all modes state.
  • Mode transitions should appear as tri-stated if there are subcomponents selected and one of other modal elements is in the mode transition.
@philip-alldredge philip-alldredge modified the milestones: Current Iteration, Planning Feb 27, 2017
@philip-alldredge philip-alldredge modified the milestones: Planning, Enhancements R2 Jul 10, 2017
@philip-alldredge philip-alldredge changed the title Configure In Modes Functionality Capability to Assign Multiple Model Elements to Modes Simultaneously Jul 10, 2017
Copy link
Contributor Author

@RyanMcilnay I have reworked the issue description to reflect changes discussed since this was written.

Copy link
Contributor Author

philip-alldredge commented Sep 7, 2017

Example model which has extended types and subcomponents.

package mode_test
abstract test
			m1: mode;
	end test;
abstract test_ext extends test
			m2: mode;
	end test_ext;

	abstract implementation test_ext.impl
	extends test.base
			sc1: abstract;
	sc2: abstract;
	end test_ext.impl;

	abstract implementation test.base
			sc3: abstract;
	sc4: abstract;
	end test.base;
end mode_test;

Copy link
Contributor Author

Implemented by 3c374c4

Copy link
Contributor Author

@RyanMcilnay please update the user guide to reflect changes.

Copy link
Contributor Author

User guide updated in 38c72a3

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
None yet

No branches or pull requests

2 participants