Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Language Updates #64

Merged
merged 33 commits into from
Oct 1, 2020
Merged

Language Updates #64

merged 33 commits into from
Oct 1, 2020

Conversation

tgoprince
Copy link
Member

This PR introduces a new development version of the plugin, with minor improvements.

Bugs fixed

  • Default values for association stereotypes (e.g. bringsAbout, triggers)
  • Wrong suggestions for association stereotypes

New features:

  • Added the <<abstract>> stereotype
  • The mode nature on the restrictedTo meta-attribute of classes split into intrinsic-mode and extrinsic-mode to reflect the new UFO taxonomy.

Changes:

  • Reversed direction of <<participation>>, <<creation>>, and <<termination>> to match that of gUFO, in which the Endurant class (or Object) is the source and the Event class is the target.
  • Refactored some portions of the code to improve readability and minimize duplication

Observations:

  • It seems like there is a big change in SmartModellingController.java, but it is mostly due to adjusted indentation.

@claudenirmf claudenirmf changed the title Plugin Language Updates Sep 12, 2020
Copy link
Member

@claudenirmf claudenirmf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code reviewed. Going into testing.

@claudenirmf
Copy link
Member

Does it make sense to enable isExtensional to be changed for any class whose restriction is collective?

I believe that once a collective class is extensional, this must be the case for subclasses as well. However, it is weird to consider the other way around.

Copy link
Member

@claudenirmf claudenirmf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double-check constraints

@claudenirmf
Copy link
Member

I am happy with this PR, just give me your feedback on the comments above so I can generate a new release.

@tgoprince
Copy link
Member Author

Does it make sense to enable isExtensional to be changed for any class whose restriction is collective?

It definitely does. I changed the condition on the contextual menu to enabled it in such cases.
However, it doesn't work because other stereotypes don't have the isExtensional meta-property.
Could you fix that @claudenirmf?

I believe that once a collective class is extensional, this must be the case for subclasses as well. However, it is weird to consider the other way around.

I'm not sure. Depends on how we interpret isExtensional when it is false...

@tgoprince
Copy link
Member Author

Double-check constraints

Are you asking me to double-check the constraints or are you telling me you did it? :)

@claudenirmf
Copy link
Member

Double-check constraints

Are you asking me to double-check the constraints or are you telling me you did it? :)

I was double-checking the constraints and GitHub required some message to submit my comments. Sorry for the bad naming, no need for you to do anything.

@claudenirmf
Copy link
Member

Does it make sense to enable isExtensional to be changed for any class whose restriction is collective?

It definitely does. I changed the condition on the contextual menu to enabled it in such cases.
However, it doesn't work because other stereotypes don't have the isExtensional meta-property.
Could you fix that @claudenirmf?

Working on it.

I believe that once a collective class is extensional, this must be the case for subclasses as well. However, it is weird to consider the other way around.

I'm not sure. Depends on how we interpret isExtensional when it is false...

Let's think about this constraint, but we may need an enumeration instead of a boolean here to account for three possible value (or we just use restrictedTo again)... maybe even for powertypes... 🤔

Know bugs:
 - Suggested «characterization» from «quality» to «event»
 - Sortals keep restrictions after generalizations are deleted
 - Changing the stereotype while isExtensional = true does not return the value to false.
 - Changes isExtensional to false when "collective" is not the unique
value of restrictedTo
 - Prevents manual changes to isExtensional when prohibited
@claudenirmf
Copy link
Member

I have updated the code so any stereotypes whose value of restrictedTo may be collective have the isExtensional tagged value. The value of isExtensional may be set to true iff collective is the unique value of restrictedTo.

Now updates to restrictedTo trigger a verification of isExtensional, which is set to false in case the class doesn't apply to collectives only. Also, manual changes to the tagged value are prohibited while smart modeling is enabled.

This update accommodates old projects that lacked this tagged value in their stereotypes.

@claudenirmf
Copy link
Member

Btw, are we using «characterization» between intrinsic moments and events? I understand if they could be used as read-only but wanted to check with you.

@tgoprince
Copy link
Member Author

tgoprince commented Sep 16, 2020

Btw, are we using «characterization» between intrinsic moments and events? I understand if they could be used as read-only but wanted to check with you.

Yes, this is allowed by the theory.

See the paper below by Giancarlo and João. In pager 4, a Trope inheres in an Individual, which can be an Event, a Situation or an Endurant.

https://www.researchgate.net/publication/336848806_Events_as_Entities_in_Ontology-Driven_Conceptual_Modeling

Also see the object property gufo:inheresIn defined in gUFO:

http://purl.org/nemo/gufo

@tgoprince
Copy link
Member Author

I have updated the code so any stereotypes whose value of restrictedTo may be collective have the isExtensional tagged value. The value of isExtensional may be set to true iff collective is the unique value of restrictedTo.

Now updates to restrictedTo trigger a verification of isExtensional, which is set to false in case the class doesn't apply to collectives only. Also, manual changes to the tagged value are prohibited while smart modeling is enabled.

This update accommodates old projects that lacked this tagged value in their stereotypes.

Great solution!

@claudenirmf
Copy link
Member

@tgoprince, could you add the formatter to Maven as shows this tutorial?

I have integrated it to my installation of Eclipse but, beyond this being limited to my computer, it has some annoying side-effects on Eclipse.

@tgoprince
Copy link
Member Author

Just to register our decision.

  1. I implemented a Maven plugin that automatically formats the code according to Google's Java Format Guidelines upon compiling the code (see 1c82bbb)
  2. I added a Github action that automatically formats the code, again according to Google's Java Format Guidelines, upon any push to the repository (see 4864ecd)

1 is to assist developers in getting the final style while coding
2 is to make sure no unstyled code is committed to the repository

Notice that by pushing commit 2 to Github, I triggered an automatic restyling of all our plugin code (see b1e744e)

@claudenirmf
Copy link
Member

After struggling with some issues when deleting associations from diagrams, I have implemented the following strategy for inverting associations (from the example below):

Screen Shot 2020-09-27 at 22 04 07

If you invert an association by making a change for a suggested stereotype, the association ends are kept.

Screen Shot 2020-09-27 at 22 04 26

Screen Shot 2020-09-27 at 22 04 42

If you invert the association through the "Reverse Association" action on the menu, everything is inverted.

Screen Shot 2020-09-27 at 22 05 08

Screen Shot 2020-09-27 at 22 05 30

The code is ugly because I tried to be safe at each step. Please have a look at Association.invertAssociation().

@claudenirmf
Copy link
Member

Now, SmartModelingController is responsible for keeping the consistency on navigability as well as multiplicity, read-only properties, and aggregation kind. The code now prevents navigability from appearing alongside aggregation kind in the same end (when involving ontouml classes on both sides).

However, SmartModeling runs only when the user changes the stereotype through the context menu. The user is still able to "mess up the navigability" manually through other menus. To prevent this we need to use model listeners as well.

@claudenirmf
Copy link
Member

There is a known bug in the code, but it is likely to be caused by Visual Paradigm itself and it doesn't seem to break anything.

When hovering the meta-properties menu of an association's source or target, the following exception is thrown if any of the properties are set (i.e., isReadOnly, isDerived, or isOrdered):

java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location

I believe we can tolerate this exception.

@tgoprince
Copy link
Member Author

Now, SmartModelingController is responsible for keeping the consistency on navigability as well as multiplicity, read-only properties, and aggregation kind. The code now prevents navigability from appearing alongside aggregation kind in the same end (when involving ontouml classes on both sides).

However, SmartModeling runs only when the user changes the stereotype through the context menu. The user is still able to "mess up the navigability" manually through other menus. To prevent this we need to use model listeners as well.

Sounds like a good feature to consider in the future. I suggest we create an issue for it and merge this PR as it is.

@tgoprince
Copy link
Member Author

There is a known bug in the code, but it is likely to be caused by Visual Paradigm itself and it doesn't seem to break anything.

When hovering the meta-properties menu of an association's source or target, the following exception is thrown if any of the properties are set (i.e., isReadOnly, isDerived, or isOrdered):

java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location

I believe we can tolerate this exception.

Were you able to track down which of our methods throws this exception? And if there is any consequence in terms of additional memory or cpu consumption?

@claudenirmf
Copy link
Member

Sounds like a good feature to consider in the future. I suggest we create an issue for it and merge this PR as it is.

I have created the issue

Were you able to track down which of our methods throws this exception? And if there is any consequence in terms of additional memory or cpu consumption?

It happens whenever we hover on these "internal" context menus for the source and target ends meta-properties, regardless with we anything or not. My bet is on some buggy listener on the tool.

I have seen no impact on processor time or memory allocation.

@claudenirmf
Copy link
Member

claudenirmf commented Oct 1, 2020

I believe that whenever we invert associations we should keep the association ends where they are, along with their properties (including multiplicity). One important example is when someone defines a parthood relation by hand in the wrong direction and uses the suggested stereotypes menu to set the stereotype:

  1. Before applying stereotype:
    Screen Shot 2020-10-01 at 02 10 47

  2. After applying stereotype:
    Screen Shot 2020-10-01 at 02 11 44

Notice that it is interesting to keep even the multiplicity in place as it carries some information the user made an effort to put there. Keeping the multiplicity in place may be an issue when replacing a «mediation» for a «characterization», for example, but we already have the policy of not overriding user-defined multiplicities.

The main thing we may change from this example is keeping the original reading direction because it must make sense with the name of the association. This will not be in conflict with the real direction of the association, as this is identified by the navigability or the aggregation symbols.

Given everything I said, I am considering removing the dialog warning for inverting associations and the menu button for inverting associations without changing stereotypes.

@claudenirmf claudenirmf merged commit b6a914b into development Oct 1, 2020
@claudenirmf claudenirmf deleted the feature/fix-mode-abstract branch October 1, 2020 16:29
tgoprince added a commit that referenced this pull request Oct 2, 2020
* Serialization of Enumeration Literals (#11)

* Included complete OntoUML stereotype list and improved JSON serialization (#9)

* All Steryotypes removed and OntoUML steryotypes added

on plugin start, remove all UML steryotypes both type class and association and install  OntoUML stereotypes.

* Fixed package name.

* buttons for load/unload ontoUML stereotypes

* improve the activation of the default stereotypes

when activate the default stereotype, removed the stereotypes that are  already in the classes.

* [WIP] print json schema for all elements in project. Still missing some features.

added testModel.vpp to the vpp projects folder

* added support for association and other types

* Testing commit

* [wip] added uri to the elements

* Ongoing integration

* Functional remote verification

Non-blocking, logged, remote verification.
Requires refactoring.

* Minor improvements

Bug-fixes and refactoring

* Minor fixes

* Improved generation and error display on LOG 

Transformation shall be updated to workaround limitations of GSON's serialization and improvements on OntoUML Schema.

* Changing Stereotypes with Right Click

* Experimenting with default color profiles

* Fixing GSON issue and ClassCastException

* Updating stereotypes

* Setting up configurations menu

* Configurations Menu

* General improvements

* General refactoring and bugfix

* General refactoring and bugfix #2

* Major Refactoring and Documentation

Classes yet to be refactored/documented:
 - ActivateOntoUMLPlugin
 - ActivateDefaultStereotypes
 - StereotypeUtils
 - CollectionAdapter
 - Most classes within package it.unibz.inf.ontouml.vp.model

* Model Export feature and refactoring

* Auto-coloring feature and icons update

* Minor improvements to auto-coloring

It now affects all views of the selected model element.

* Maven project (#7)

* maven project

* removed readme

* openapi.jar was added to the project folder in order to be executed out of the box using maven compile.

* changed folder name lib to repo / changed compiler to java 11 in pom.xml

* gitignore updated

* solved identation in git ignore file

* Revert "Merge branch 'development' into maven-project"

This reverts commit a72c78c, reversing
changes made to 1cd30e4.

* Update .gitignore

* Delete openapi.jar

* Update .gitignore

* Removed unused imports

* Update .gitignore

* Including debug dependencies

* Cleaning POM file

* added generation of zip file of the plugin

* Update README and .gitignore

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* removed toolbar buttons and removed some options in configurations panel.

* cardinality updated

* removed comment

* Removed XML Export Window.

* removed if to test if model verification is enabled

* fixed url server verification

* Fixed string regex in AssociationEnd

* set timeout for 60s in request verification

* added some logs in verification and also added behavior to check if custom server is enabled before mounting the URL.

* Added all stereotypes

* Stereotype order

* Update stereotype serialization

* Removed unused import

* Coloring enabled by default

* Update Stereotypes.java

* updated associationEnd and Attribute cardinalities

* change aggregationkind when applying stereotypes and set abstract to true when aplying mixin stereotype to classes

* [WIP] - implementing new schema

* wip - corrections in model creation to adapt to the new schema

* remove propertyAssignment class.

* created reference class

* fixes

* fix

* Some updates

Ongoing changes

* added propertyAssignment build

* wip - added property assignment to reflect better tagged values, add DataType class as well.

* isDerived logic

* Removed <<historical>> stereotype.

<<historicalDependence>> should be used instead.

* Update .gitignore

* Removed Stereotypes.java

This class only responsibility was to add the prefix ontouml/2 or vp/custom to stereotypes on the serialization. We decided not to have this prefixes on the exchanged models anymore.

* Update ModelExportAction.java

* Removed Reload plugin button

* Bugfix null pointer on Association and Property constructors

* removed datatype class and included datatype constructor in class class. Removed AssociationEnd and Attribute classes because it will be handled by Property class.

* fixed associationclass

* propertyAssignments in all elements

* fixed setName and isDerived

* fixed property assignments for association end

* added some comments

* id was not being set in Package Element

* added description field to the elements

* if description is empty set attribut to null

* fixed Reference in Generalization constructor

* fixed reference in GeneralizationSet

* fixed tagged values when model element is not specified

* ready to be merged

* Improvements from code review

* Removed duplicated code and fixed transformation of missing propertyType

* Missing refactoring from tagged value extraction

* Update Class.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* added Literal class for enumeration serialization

Co-authored-by: Viola <victorviola86@gmail.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Hotfix: Null pointer exception on Class constructor (#13)

* fixed constructor - checked this.stereotypes for null before using.

* Update Class.java

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* Serialization improvements on propertyAssignments and Generalization and GUI improvement on Model Export (#12)

* Included complete OntoUML stereotype list and improved JSON serialization (#9)

* All Steryotypes removed and OntoUML steryotypes added

on plugin start, remove all UML steryotypes both type class and association and install  OntoUML stereotypes.

* Fixed package name.

* buttons for load/unload ontoUML stereotypes

* improve the activation of the default stereotypes

when activate the default stereotype, removed the stereotypes that are  already in the classes.

* [WIP] print json schema for all elements in project. Still missing some features.

added testModel.vpp to the vpp projects folder

* added support for association and other types

* Testing commit

* [wip] added uri to the elements

* Ongoing integration

* Functional remote verification

Non-blocking, logged, remote verification.
Requires refactoring.

* Minor improvements

Bug-fixes and refactoring

* Minor fixes

* Improved generation and error display on LOG 

Transformation shall be updated to workaround limitations of GSON's serialization and improvements on OntoUML Schema.

* Changing Stereotypes with Right Click

* Experimenting with default color profiles

* Fixing GSON issue and ClassCastException

* Updating stereotypes

* Setting up configurations menu

* Configurations Menu

* General improvements

* General refactoring and bugfix

* General refactoring and bugfix #2

* Major Refactoring and Documentation

Classes yet to be refactored/documented:
 - ActivateOntoUMLPlugin
 - ActivateDefaultStereotypes
 - StereotypeUtils
 - CollectionAdapter
 - Most classes within package it.unibz.inf.ontouml.vp.model

* Model Export feature and refactoring

* Auto-coloring feature and icons update

* Minor improvements to auto-coloring

It now affects all views of the selected model element.

* Maven project (#7)

* maven project

* removed readme

* openapi.jar was added to the project folder in order to be executed out of the box using maven compile.

* changed folder name lib to repo / changed compiler to java 11 in pom.xml

* gitignore updated

* solved identation in git ignore file

* Revert "Merge branch 'development' into maven-project"

This reverts commit a72c78c, reversing
changes made to 1cd30e4.

* Update .gitignore

* Delete openapi.jar

* Update .gitignore

* Removed unused imports

* Update .gitignore

* Including debug dependencies

* Cleaning POM file

* added generation of zip file of the plugin

* Update README and .gitignore

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* removed toolbar buttons and removed some options in configurations panel.

* cardinality updated

* removed comment

* Removed XML Export Window.

* removed if to test if model verification is enabled

* fixed url server verification

* Fixed string regex in AssociationEnd

* set timeout for 60s in request verification

* added some logs in verification and also added behavior to check if custom server is enabled before mounting the URL.

* Added all stereotypes

* Stereotype order

* Update stereotype serialization

* Removed unused import

* Coloring enabled by default

* Update Stereotypes.java

* updated associationEnd and Attribute cardinalities

* change aggregationkind when applying stereotypes and set abstract to true when aplying mixin stereotype to classes

* [WIP] - implementing new schema

* wip - corrections in model creation to adapt to the new schema

* remove propertyAssignment class.

* created reference class

* fixes

* fix

* Some updates

Ongoing changes

* added propertyAssignment build

* wip - added property assignment to reflect better tagged values, add DataType class as well.

* isDerived logic

* Removed <<historical>> stereotype.

<<historicalDependence>> should be used instead.

* Update .gitignore

* Removed Stereotypes.java

This class only responsibility was to add the prefix ontouml/2 or vp/custom to stereotypes on the serialization. We decided not to have this prefixes on the exchanged models anymore.

* Update ModelExportAction.java

* Removed Reload plugin button

* Bugfix null pointer on Association and Property constructors

* removed datatype class and included datatype constructor in class class. Removed AssociationEnd and Attribute classes because it will be handled by Property class.

* fixed associationclass

* propertyAssignments in all elements

* fixed setName and isDerived

* fixed property assignments for association end

* added some comments

* id was not being set in Package Element

* added description field to the elements

* if description is empty set attribut to null

* fixed Reference in Generalization constructor

* fixed reference in GeneralizationSet

* fixed tagged values when model element is not specified

* ready to be merged

* Improvements from code review

* Removed duplicated code and fixed transformation of missing propertyType

* Missing refactoring from tagged value extraction

* Update Class.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* added new file dialog to export model. Also suggets filename.

* if no property assignment added - return null

* if a Generalization has stereotypes in both ends does not add this generalization to the model.

* export json

Changed view to File Dialog
Now suggests the same name of the last save

* Quick fix on name suggestion

* Removed unused semicolon

* Only serializes generalizations between classes or associations

* Update ModelElement.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* Hotfix: Null pointer exception when reading outdate config file (#14)

* Bugfix

* Remove unnecessary sysout call

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Feature to disable associations dynamically (#15)

* added feature to disable associations dynamically

* Bugfix when applying <<mode>>, <<quality>>, <<relator>> and <<manifestation>>

* added missing source stereotype (Quality)

* Update ApplyStereotype.java

* Fixed category case when setting the possible relations

* changed types do HashMap

* removed powertype from the association stereotypes list and also removed some unused imports

* implementation changed to use a single map with all constraints.

* removed unused imports

* Update AssociationConstraints.java

* Minor improvements

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* [WIP] Listeners and basic coloring.

* [WIP] coloring all model

* [WIP] Smart Coloring fixes

* fix in smart paint

* fixed unused code

* paint diagram button improved listeners

* if auto coloring disabled do not paint

* WIP added listeners when load the plugin. Still need to evaluate where the listeners should be.

* fixed mixins coloring

* fixed coloring to match mixin pattern

* fixed subkinds in a row

* Small fixes

* Avoids repeating code

* Renamed COLOR_NON_SORTAL to  COLOR_UNKNOWN

* fixes and removed unused code

* added smartpaint in applystereotype

It is been hard to deal with stereotype listener

* removed unused listeners

* Removed println() that I commited by mistake

* Update SmartColoring.java

* Menubar Icon update

* working for generalization changes

* Update OntoUML server URL

* removed unused imports

* Added a warning when the user clicks on smart paint and the auto coloring is set to false.

* fixed null pointer exception when removing generalization.

* Fixed NullPointerException when serializing generalizations

* Bugfix on my previous fix ;)

* added dialog box when user clicks in smart paint

* Updates Smart Paint actions and removes unused imports

* Updates listeners, improves readability and prevents exceptions

* todo's removed.

* Quick systout fix

* Syntax verification (#17)

* verification response warning dialog and messages in log panel

* improved log messages and created function to get icon path.

* Minor fixes

* Adds verification dialog method

* some http response handled and added some try/catch

* Updates dialogs in case of failure

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Connects plugin to the server for model transformation to gUFO (#18)

* Initial commit

* Connects to the server

* Minor issues

* addded verification for custom server in transformation to gufo also adapted verification function url building.

* added option to retry export to gUFO using the default server.

* added option to retry in verification service if service custom has problems

* Adds protection to Server Not Found

Co-authored-by: Viola <victorviola86@gmail.com>

* Smart meta properties feature (#27)

* set meta-properties whole model

* bug fixed when applying stereotypes for associations.

* set cardinalities if null or unspecified.

* update smartproperties.java to avoid duplicated code.

* set readonly only where it is true.

* fixed bug in cardinality setting.

* Fixed cardinality value on <<termination>>

* renamed smartProperties to SmartModelling. Moved functions from ApplyStereotype to SmartModelling class. Removed set meta properties from listeners and added to the class ApplyStereotype.

* Bugfix: HistoricalDependence

* Group all "smart modeling" features together

Plus: 
1. Material relations are 1..* by defaul only when relating roles.
2. subQuantityOf is, by default, readOnly=true on the part end

* Removed unused imports

* Created function to set default meta properties also for classes

* Cleaned up SmartModeling.java

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Disable stereotypes as you model (#28)

Implement the features described in issues #23 and #26 

* disabling stereotypes as you model.

* removed unecessary comments

* added option in configurations to enable/disable smart modelling

* Fixed allowed supertypes of Subkind

* Subkinds cannot specialize Types

* fix in setting allowed stereotypes in generalizations

* fixed layout for configurations panel.

* Fixed null pointer when subtype or super type did not have stereotypes

* Enabling/disabling smart modeling applies to associations and classes

* Toggling smart modeling also impacts association default metaproperties

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* diagram verification

* added user logs to distinct between diagram/model verification. Also added protection to runs the diagram verification only if there is a class diagram opened.

* Adjusted messages display in dialogs displayed after verification is called

* Small improvements to the message log

* New Log Panel and highlight elements after verification.

* improved textArea in log panel. Now user cannot edit the text.

* open specification option in context menu / disable take me there if class is not in any diagram

* border between results in log panel

* Updates ViewUtils

* Updates ViewUtils

* changed log panel to use JList.

* Updates ViewUtils

* Apply stereotype feature works when multiple classes are selected (#39)

* apply multiple sterotypes at same time. Only works if all elements in the selection are the same.

* if selection has classes and associations selected at the same time validate rule for only the object that had the click.

* apply same stereotype for all elements selected

* fix update stereotype when selection multiple objects.

* when user selects more than one object do not apply constraints

* added new Fixed menu - now suggests stereotypes only when 1 class is selected or all selected classes have the same super class.

* fixed action behavior in context menu of the model explorer

* fixed context menu when selecting stereotypes from model explorer

Co-authored-by: Victor Viola <victor.viola@farfetch.com>

* Issue31 add progress bar (#44)

* apply multiple sterotypes at same time. Only works if all elements in the selection are the same.

* if selection has classes and associations selected at the same time validate rule for only the object that had the click.

* apply same stereotype for all elements selected

* fix update stereotype when selection multiple objects.

* when user selects more than one object do not apply constraints

* added new Fixed menu - now suggests stereotypes only when 1 class is selected or all selected classes have the same super class.

* fixed action behavior in context menu of the model explorer

* fixed context menu when selecting stereotypes from model explorer

* progressBar first version

* progress bar when calling diagram verification

* progresspanel - WIP

* fixes - wip

* progresbar with threads. Now user can cancel the request.

* fixed bug in case of exception or response null

* added message when user cancel the request.

* added progress bar to export to json after user selects the filename and file directory

* first close the progess bar then show the dialog

* added progress bar when exporting to gufo

* removed duplcated code.

* bug fixed when selecting an invalid endpoint

* bug fixed when handling model verification response

* added progress dialog to the functions that connects to the server. Improved the way the progress dialog works.

* improved in how the loading box closes.

* Fixed null pointer when canceling the model export

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Made project compliant to Maven's  default folder structure

* Fixes on pom.xml

* Executing VP with plugin through Maven

* Added maven wrapper

* Skip installation of plugin on local maven directory

* Updates scripts

* Improved README.md

* Cleaned up run.sh

* Added build profiles to distinguish exec scripts

* added .bat script to mvn exec in windows

* Fixed unix run-vp script

* improved bat script

* Update README.md

* added version label in settings panel (#48)

* Added support for OntoUML tagged values(#37)

* Adds proper generation of stereotypes

* Updates apply stereotypes and serialization

* Working on tagged value overwrite

* Bug fix

* Updates class serialization

* Fix tagged value update

* Refactor methods

* Bugfix apply fixed menu

* Updates context menus for properties

* Updates properties menus

* Updated set order dialog

* Includes abstract nature

* Updates JSON serialization

* Bugfix

* BugFix

* Additional options added to the contextual menus

* Removes local maven variables from repo

* Updates Meta-Properties context menu

* Updates enabling of meta-properties context menu

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Bugfix duplicated tagged values

* New UI to access the ontouml2gufo service (#49)

* WIP - checkbox tree for diagrams and model

* added dynamic icons to the tree

* improved icon setting.

* wip - added option to choose between trees

* Save user config when exporting to GUFO

* wip - selection tree - retrieving nodes

* fixed window control

* created new constructors.

* fix bug when calling class constructor

* added comments and removed others.

* Moved icons

* wip - package tree explorer

* now models and packages have priority in the package tree.

* added new model elements to package tree

* added option to check class without checking attributes

* fix attribute selection

* check all same objects in the tree

* fixed identation

* fixed multiple selection when have commom objects in the selection.

* fixed selection for classes

* now the tree is saving in the configurations

* fixed attributes when selecting classes

* fixed model snapshot when selecting generalization sets

* consider IDiagramUIModel as its parent element

* now nodes of the tree are being inserted sorted.

* now tree is organized per type AND alphabetically

* added associations and generalizations to the package tree

* select classes of the same type of the attribute selected.

* check types for subtree

* request improved

* improved tree cell renderer

* 1st version export view

* new export to gufo window finished

* fixed diagram saving element

* added new icons

* new icons

* icon for package changed

* fixed model building

* improved selection for similar node

* improved threads

* changed icon for association end

* name for association end

* changed name root element for diagram tree

* fixed nullpointer

* add labels for combos

* resize window false

* prevent window export to be opened twice

* prevent config window to be opened twice

* changed UI export

* removed unused component

* adjust in UI

* adjust in UI

* improved layout

* fixed label

* layout improvement

* adjust

* new layout for export - wip

* layout improvement - wip

* added table

* added packages tab

* Changed labels

* Added default language option

* layout adjust

* update

* ui updated

* adjust ui

* Adjusted labels

* Set Base IRI default value

* UI fixes

* changed default behavior for tables

* get json string from tables

* generating json to send transformation to server

* Bugfix on allowed nature serialization

* Updates export file format and datatype serialization

* Minor refactoring

* Bugfix tag removal on apply meta-properties

* Updates meta-property serialization

* Minor presentation issue

* Bugfix on suggested stereotypes

* Bugifx on gufo options export

* fixed model building for tree and package

* added port number to the default server

* code improved

* adjusted images

* select generalizations when g_set is selected

* fixed tree for diagram and package views

* fixed serialization

* fixed name of the generalizations in the tree

* Fixed element and package mapping serialization

Removed duplicate code

* General code improvements

* Smart painting based on restrictedTo meta-property

* Fixed bugs related to tagged values

* Updates listeners for restrictedTo inference

* Updates inference criteria

* Updates ApplyProperties

* Improving manipulation of tagged values

* Updates interaction with tagged values

* BugFix

 - Add listeners in projects that were "not created" (when the tool open without opening an existing project)

- Binds tagged value definitions to to stereotypes instead of simply adding them to the stereotype's tagged value definition container

* Bugfix and cleanup

* Bugfix

Updates color when adding existing model element to diagram

* Updates smart modeling of historical roles

* BugFixes and updates menu ordering, menu access, and color scheme

* Bugfix historicalRole rule

* Updates «historicalRoleMixin»

* Updates applicable stereotype based on generalization

* Updates association constraints JSON file

* Updates association constraints JSON file

* Updates ReportErrorAction

* Updates guides and bug report

* Updates README

* Updates images size

* Updates report error URL

* Updates README

* Updates plugin update feature

* Updates README

* Bugfix default cardinalities

* Updates situations support

* Updates README

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
Co-authored-by: Claudenir M. Fonseca <claudenirmf@gmail.com>

* Plugin Update Automation (#61)

* Retrieve releases from GitHub

* Updates release download

* Updates interfaces and download

* Updates periodic lookup for new releases

* Update plugin.xml and general bugfix

* Bugfix

* Improved plugin toolbar

* Extracted nested classes from ViewUtils

* General refactoring and update of releases serialization

* Refactoring

* Refactoring

* Refactoring

* BugFix

Replaces ZonedDateTime serialization to strings

* Refactoring

* Refactoring

* Fixed null pointer bug

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Language Updates (#64)

* Small fixes in the plugin

* Updated restrictedTo dialog

* Plugin version increased

* Minor change to color defaults

* Code refactoring

* Renamed method

* Added association constraints involving datatypes

* Enable isExtensional based on restriction

* Updates stereotypes to include isExtensional

Know bugs:
 - Suggested «characterization» from «quality» to «event»
 - Sortals keep restrictions after generalizations are deleted
 - Changing the stereotype while isExtensional = true does not return the value to false.

* Fixes smart paint for empty restrictedTo

* Fix updates to isExtensional

 - Changes isExtensional to false when "collective" is not the unique
value of restrictedTo
 - Prevents manual changes to isExtensional when prohibited

* Fixed behavior on enabling/desabling menu options on the class contextual menu

* Set navigability when applying a relation stereotype

* Update navigability

* Updates invert association

* Updates meta-property menu: isAbstract and isDerived

* Updates context menu for attributes

* Adds source and target meta-property menus

* Updates suggested stereotypes on both directions

* Updates association inversion warning dialog

* Added allowed associations by ontological nature

* Applies association constraints based on nature restrictions

* Code clean-up

* Added Maven plugin for automatic code formatting

* Add Github Action for styling the code in the Google Java Format

* Google Java Format

* BugFix invert association and reorganizes code

* Google Java Format

* Bugfixes

* Updates labels and stereotype suggestion for multiple selected elements

* Updates invertAssociation() and refactors code

* Google Java Format

* Bugfixes

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
Co-authored-by: Claudenir Fonseca <claudenirmf@gmail.com>
Co-authored-by: github-actions <>

* Disables UI elements

Disables duplicated "Invert Association" button

* 0.4.0

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Viola <victorviola86@gmail.com>
Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tgoprince@gmail.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
@claudenirmf claudenirmf linked an issue Mar 19, 2021 that may be closed by this pull request
claudenirmf added a commit that referenced this pull request Mar 19, 2021
* Serialization of Enumeration Literals (#11)

* Included complete OntoUML stereotype list and improved JSON serialization (#9)

* All Steryotypes removed and OntoUML steryotypes added

on plugin start, remove all UML steryotypes both type class and association and install  OntoUML stereotypes.

* Fixed package name.

* buttons for load/unload ontoUML stereotypes

* improve the activation of the default stereotypes

when activate the default stereotype, removed the stereotypes that are  already in the classes.

* [WIP] print json schema for all elements in project. Still missing some features.

added testModel.vpp to the vpp projects folder

* added support for association and other types

* Testing commit

* [wip] added uri to the elements

* Ongoing integration

* Functional remote verification

Non-blocking, logged, remote verification.
Requires refactoring.

* Minor improvements

Bug-fixes and refactoring

* Minor fixes

* Improved generation and error display on LOG 

Transformation shall be updated to workaround limitations of GSON's serialization and improvements on OntoUML Schema.

* Changing Stereotypes with Right Click

* Experimenting with default color profiles

* Fixing GSON issue and ClassCastException

* Updating stereotypes

* Setting up configurations menu

* Configurations Menu

* General improvements

* General refactoring and bugfix

* General refactoring and bugfix #2

* Major Refactoring and Documentation

Classes yet to be refactored/documented:
 - ActivateOntoUMLPlugin
 - ActivateDefaultStereotypes
 - StereotypeUtils
 - CollectionAdapter
 - Most classes within package it.unibz.inf.ontouml.vp.model

* Model Export feature and refactoring

* Auto-coloring feature and icons update

* Minor improvements to auto-coloring

It now affects all views of the selected model element.

* Maven project (#7)

* maven project

* removed readme

* openapi.jar was added to the project folder in order to be executed out of the box using maven compile.

* changed folder name lib to repo / changed compiler to java 11 in pom.xml

* gitignore updated

* solved identation in git ignore file

* Revert "Merge branch 'development' into maven-project"

This reverts commit a72c78c, reversing
changes made to 1cd30e4.

* Update .gitignore

* Delete openapi.jar

* Update .gitignore

* Removed unused imports

* Update .gitignore

* Including debug dependencies

* Cleaning POM file

* added generation of zip file of the plugin

* Update README and .gitignore

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* removed toolbar buttons and removed some options in configurations panel.

* cardinality updated

* removed comment

* Removed XML Export Window.

* removed if to test if model verification is enabled

* fixed url server verification

* Fixed string regex in AssociationEnd

* set timeout for 60s in request verification

* added some logs in verification and also added behavior to check if custom server is enabled before mounting the URL.

* Added all stereotypes

* Stereotype order

* Update stereotype serialization

* Removed unused import

* Coloring enabled by default

* Update Stereotypes.java

* updated associationEnd and Attribute cardinalities

* change aggregationkind when applying stereotypes and set abstract to true when aplying mixin stereotype to classes

* [WIP] - implementing new schema

* wip - corrections in model creation to adapt to the new schema

* remove propertyAssignment class.

* created reference class

* fixes

* fix

* Some updates

Ongoing changes

* added propertyAssignment build

* wip - added property assignment to reflect better tagged values, add DataType class as well.

* isDerived logic

* Removed <<historical>> stereotype.

<<historicalDependence>> should be used instead.

* Update .gitignore

* Removed Stereotypes.java

This class only responsibility was to add the prefix ontouml/2 or vp/custom to stereotypes on the serialization. We decided not to have this prefixes on the exchanged models anymore.

* Update ModelExportAction.java

* Removed Reload plugin button

* Bugfix null pointer on Association and Property constructors

* removed datatype class and included datatype constructor in class class. Removed AssociationEnd and Attribute classes because it will be handled by Property class.

* fixed associationclass

* propertyAssignments in all elements

* fixed setName and isDerived

* fixed property assignments for association end

* added some comments

* id was not being set in Package Element

* added description field to the elements

* if description is empty set attribut to null

* fixed Reference in Generalization constructor

* fixed reference in GeneralizationSet

* fixed tagged values when model element is not specified

* ready to be merged

* Improvements from code review

* Removed duplicated code and fixed transformation of missing propertyType

* Missing refactoring from tagged value extraction

* Update Class.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* added Literal class for enumeration serialization

Co-authored-by: Viola <victorviola86@gmail.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Hotfix: Null pointer exception on Class constructor (#13)

* fixed constructor - checked this.stereotypes for null before using.

* Update Class.java

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* Serialization improvements on propertyAssignments and Generalization and GUI improvement on Model Export (#12)

* Included complete OntoUML stereotype list and improved JSON serialization (#9)

* All Steryotypes removed and OntoUML steryotypes added

on plugin start, remove all UML steryotypes both type class and association and install  OntoUML stereotypes.

* Fixed package name.

* buttons for load/unload ontoUML stereotypes

* improve the activation of the default stereotypes

when activate the default stereotype, removed the stereotypes that are  already in the classes.

* [WIP] print json schema for all elements in project. Still missing some features.

added testModel.vpp to the vpp projects folder

* added support for association and other types

* Testing commit

* [wip] added uri to the elements

* Ongoing integration

* Functional remote verification

Non-blocking, logged, remote verification.
Requires refactoring.

* Minor improvements

Bug-fixes and refactoring

* Minor fixes

* Improved generation and error display on LOG 

Transformation shall be updated to workaround limitations of GSON's serialization and improvements on OntoUML Schema.

* Changing Stereotypes with Right Click

* Experimenting with default color profiles

* Fixing GSON issue and ClassCastException

* Updating stereotypes

* Setting up configurations menu

* Configurations Menu

* General improvements

* General refactoring and bugfix

* General refactoring and bugfix #2

* Major Refactoring and Documentation

Classes yet to be refactored/documented:
 - ActivateOntoUMLPlugin
 - ActivateDefaultStereotypes
 - StereotypeUtils
 - CollectionAdapter
 - Most classes within package it.unibz.inf.ontouml.vp.model

* Model Export feature and refactoring

* Auto-coloring feature and icons update

* Minor improvements to auto-coloring

It now affects all views of the selected model element.

* Maven project (#7)

* maven project

* removed readme

* openapi.jar was added to the project folder in order to be executed out of the box using maven compile.

* changed folder name lib to repo / changed compiler to java 11 in pom.xml

* gitignore updated

* solved identation in git ignore file

* Revert "Merge branch 'development' into maven-project"

This reverts commit a72c78c, reversing
changes made to 1cd30e4.

* Update .gitignore

* Delete openapi.jar

* Update .gitignore

* Removed unused imports

* Update .gitignore

* Including debug dependencies

* Cleaning POM file

* added generation of zip file of the plugin

* Update README and .gitignore

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* removed toolbar buttons and removed some options in configurations panel.

* cardinality updated

* removed comment

* Removed XML Export Window.

* removed if to test if model verification is enabled

* fixed url server verification

* Fixed string regex in AssociationEnd

* set timeout for 60s in request verification

* added some logs in verification and also added behavior to check if custom server is enabled before mounting the URL.

* Added all stereotypes

* Stereotype order

* Update stereotype serialization

* Removed unused import

* Coloring enabled by default

* Update Stereotypes.java

* updated associationEnd and Attribute cardinalities

* change aggregationkind when applying stereotypes and set abstract to true when aplying mixin stereotype to classes

* [WIP] - implementing new schema

* wip - corrections in model creation to adapt to the new schema

* remove propertyAssignment class.

* created reference class

* fixes

* fix

* Some updates

Ongoing changes

* added propertyAssignment build

* wip - added property assignment to reflect better tagged values, add DataType class as well.

* isDerived logic

* Removed <<historical>> stereotype.

<<historicalDependence>> should be used instead.

* Update .gitignore

* Removed Stereotypes.java

This class only responsibility was to add the prefix ontouml/2 or vp/custom to stereotypes on the serialization. We decided not to have this prefixes on the exchanged models anymore.

* Update ModelExportAction.java

* Removed Reload plugin button

* Bugfix null pointer on Association and Property constructors

* removed datatype class and included datatype constructor in class class. Removed AssociationEnd and Attribute classes because it will be handled by Property class.

* fixed associationclass

* propertyAssignments in all elements

* fixed setName and isDerived

* fixed property assignments for association end

* added some comments

* id was not being set in Package Element

* added description field to the elements

* if description is empty set attribut to null

* fixed Reference in Generalization constructor

* fixed reference in GeneralizationSet

* fixed tagged values when model element is not specified

* ready to be merged

* Improvements from code review

* Removed duplicated code and fixed transformation of missing propertyType

* Missing refactoring from tagged value extraction

* Update Class.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* added new file dialog to export model. Also suggets filename.

* if no property assignment added - return null

* if a Generalization has stereotypes in both ends does not add this generalization to the model.

* export json

Changed view to File Dialog
Now suggests the same name of the last save

* Quick fix on name suggestion

* Removed unused semicolon

* Only serializes generalizations between classes or associations

* Update ModelElement.java

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>
Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>

* Hotfix: Null pointer exception when reading outdate config file (#14)

* Bugfix

* Remove unnecessary sysout call

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Feature to disable associations dynamically (#15)

* added feature to disable associations dynamically

* Bugfix when applying <<mode>>, <<quality>>, <<relator>> and <<manifestation>>

* added missing source stereotype (Quality)

* Update ApplyStereotype.java

* Fixed category case when setting the possible relations

* changed types do HashMap

* removed powertype from the association stereotypes list and also removed some unused imports

* implementation changed to use a single map with all constraints.

* removed unused imports

* Update AssociationConstraints.java

* Minor improvements

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* [WIP] Listeners and basic coloring.

* [WIP] coloring all model

* [WIP] Smart Coloring fixes

* fix in smart paint

* fixed unused code

* paint diagram button improved listeners

* if auto coloring disabled do not paint

* WIP added listeners when load the plugin. Still need to evaluate where the listeners should be.

* fixed mixins coloring

* fixed coloring to match mixin pattern

* fixed subkinds in a row

* Small fixes

* Avoids repeating code

* Renamed COLOR_NON_SORTAL to  COLOR_UNKNOWN

* fixes and removed unused code

* added smartpaint in applystereotype

It is been hard to deal with stereotype listener

* removed unused listeners

* Removed println() that I commited by mistake

* Update SmartColoring.java

* Menubar Icon update

* working for generalization changes

* Update OntoUML server URL

* removed unused imports

* Added a warning when the user clicks on smart paint and the auto coloring is set to false.

* fixed null pointer exception when removing generalization.

* Fixed NullPointerException when serializing generalizations

* Bugfix on my previous fix ;)

* added dialog box when user clicks in smart paint

* Updates Smart Paint actions and removes unused imports

* Updates listeners, improves readability and prevents exceptions

* todo's removed.

* Quick systout fix

* Syntax verification (#17)

* verification response warning dialog and messages in log panel

* improved log messages and created function to get icon path.

* Minor fixes

* Adds verification dialog method

* some http response handled and added some try/catch

* Updates dialogs in case of failure

Co-authored-by: Claudenir Morais Fonseca <claudenirmf@gmail.com>

* Connects plugin to the server for model transformation to gUFO (#18)

* Initial commit

* Connects to the server

* Minor issues

* addded verification for custom server in transformation to gufo also adapted verification function url building.

* added option to retry export to gUFO using the default server.

* added option to retry in verification service if service custom has problems

* Adds protection to Server Not Found

Co-authored-by: Viola <victorviola86@gmail.com>

* Smart meta properties feature (#27)

* set meta-properties whole model

* bug fixed when applying stereotypes for associations.

* set cardinalities if null or unspecified.

* update smartproperties.java to avoid duplicated code.

* set readonly only where it is true.

* fixed bug in cardinality setting.

* Fixed cardinality value on <<termination>>

* renamed smartProperties to SmartModelling. Moved functions from ApplyStereotype to SmartModelling class. Removed set meta properties from listeners and added to the class ApplyStereotype.

* Bugfix: HistoricalDependence

* Group all "smart modeling" features together

Plus: 
1. Material relations are 1..* by defaul only when relating roles.
2. subQuantityOf is, by default, readOnly=true on the part end

* Removed unused imports

* Created function to set default meta properties also for classes

* Cleaned up SmartModeling.java

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Disable stereotypes as you model (#28)

Implement the features described in issues #23 and #26 

* disabling stereotypes as you model.

* removed unecessary comments

* added option in configurations to enable/disable smart modelling

* Fixed allowed supertypes of Subkind

* Subkinds cannot specialize Types

* fix in setting allowed stereotypes in generalizations

* fixed layout for configurations panel.

* Fixed null pointer when subtype or super type did not have stereotypes

* Enabling/disabling smart modeling applies to associations and classes

* Toggling smart modeling also impacts association default metaproperties

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* diagram verification

* added user logs to distinct between diagram/model verification. Also added protection to runs the diagram verification only if there is a class diagram opened.

* Adjusted messages display in dialogs displayed after verification is called

* Small improvements to the message log

* New Log Panel and highlight elements after verification.

* improved textArea in log panel. Now user cannot edit the text.

* open specification option in context menu / disable take me there if class is not in any diagram

* border between results in log panel

* Updates ViewUtils

* Updates ViewUtils

* changed log panel to use JList.

* Updates ViewUtils

* Apply stereotype feature works when multiple classes are selected (#39)

* apply multiple sterotypes at same time. Only works if all elements in the selection are the same.

* if selection has classes and associations selected at the same time validate rule for only the object that had the click.

* apply same stereotype for all elements selected

* fix update stereotype when selection multiple objects.

* when user selects more than one object do not apply constraints

* added new Fixed menu - now suggests stereotypes only when 1 class is selected or all selected classes have the same super class.

* fixed action behavior in context menu of the model explorer

* fixed context menu when selecting stereotypes from model explorer

Co-authored-by: Victor Viola <victor.viola@farfetch.com>

* Issue31 add progress bar (#44)

* apply multiple sterotypes at same time. Only works if all elements in the selection are the same.

* if selection has classes and associations selected at the same time validate rule for only the object that had the click.

* apply same stereotype for all elements selected

* fix update stereotype when selection multiple objects.

* when user selects more than one object do not apply constraints

* added new Fixed menu - now suggests stereotypes only when 1 class is selected or all selected classes have the same super class.

* fixed action behavior in context menu of the model explorer

* fixed context menu when selecting stereotypes from model explorer

* progressBar first version

* progress bar when calling diagram verification

* progresspanel - WIP

* fixes - wip

* progresbar with threads. Now user can cancel the request.

* fixed bug in case of exception or response null

* added message when user cancel the request.

* added progress bar to export to json after user selects the filename and file directory

* first close the progess bar then show the dialog

* added progress bar when exporting to gufo

* removed duplcated code.

* bug fixed when selecting an invalid endpoint

* bug fixed when handling model verification response

* added progress dialog to the functions that connects to the server. Improved the way the progress dialog works.

* improved in how the loading box closes.

* Fixed null pointer when canceling the model export

Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Made project compliant to Maven's  default folder structure

* Fixes on pom.xml

* Executing VP with plugin through Maven

* Added maven wrapper

* Skip installation of plugin on local maven directory

* Updates scripts

* Improved README.md

* Cleaned up run.sh

* Added build profiles to distinguish exec scripts

* added .bat script to mvn exec in windows

* Fixed unix run-vp script

* improved bat script

* Update README.md

* added version label in settings panel (#48)

* Added support for OntoUML tagged values(#37)

* Adds proper generation of stereotypes

* Updates apply stereotypes and serialization

* Working on tagged value overwrite

* Bug fix

* Updates class serialization

* Fix tagged value update

* Refactor methods

* Bugfix apply fixed menu

* Updates context menus for properties

* Updates properties menus

* Updated set order dialog

* Includes abstract nature

* Updates JSON serialization

* Bugfix

* BugFix

* Additional options added to the contextual menus

* Removes local maven variables from repo

* Updates Meta-Properties context menu

* Updates enabling of meta-properties context menu

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Bugfix duplicated tagged values

* New UI to access the ontouml2gufo service (#49)

* WIP - checkbox tree for diagrams and model

* added dynamic icons to the tree

* improved icon setting.

* wip - added option to choose between trees

* Save user config when exporting to GUFO

* wip - selection tree - retrieving nodes

* fixed window control

* created new constructors.

* fix bug when calling class constructor

* added comments and removed others.

* Moved icons

* wip - package tree explorer

* now models and packages have priority in the package tree.

* added new model elements to package tree

* added option to check class without checking attributes

* fix attribute selection

* check all same objects in the tree

* fixed identation

* fixed multiple selection when have commom objects in the selection.

* fixed selection for classes

* now the tree is saving in the configurations

* fixed attributes when selecting classes

* fixed model snapshot when selecting generalization sets

* consider IDiagramUIModel as its parent element

* now nodes of the tree are being inserted sorted.

* now tree is organized per type AND alphabetically

* added associations and generalizations to the package tree

* select classes of the same type of the attribute selected.

* check types for subtree

* request improved

* improved tree cell renderer

* 1st version export view

* new export to gufo window finished

* fixed diagram saving element

* added new icons

* new icons

* icon for package changed

* fixed model building

* improved selection for similar node

* improved threads

* changed icon for association end

* name for association end

* changed name root element for diagram tree

* fixed nullpointer

* add labels for combos

* resize window false

* prevent window export to be opened twice

* prevent config window to be opened twice

* changed UI export

* removed unused component

* adjust in UI

* adjust in UI

* improved layout

* fixed label

* layout improvement

* adjust

* new layout for export - wip

* layout improvement - wip

* added table

* added packages tab

* Changed labels

* Added default language option

* layout adjust

* update

* ui updated

* adjust ui

* Adjusted labels

* Set Base IRI default value

* UI fixes

* changed default behavior for tables

* get json string from tables

* generating json to send transformation to server

* Bugfix on allowed nature serialization

* Updates export file format and datatype serialization

* Minor refactoring

* Bugfix tag removal on apply meta-properties

* Updates meta-property serialization

* Minor presentation issue

* Bugfix on suggested stereotypes

* Bugifx on gufo options export

* fixed model building for tree and package

* added port number to the default server

* code improved

* adjusted images

* select generalizations when g_set is selected

* fixed tree for diagram and package views

* fixed serialization

* fixed name of the generalizations in the tree

* Fixed element and package mapping serialization

Removed duplicate code

* General code improvements

* Smart painting based on restrictedTo meta-property

* Fixed bugs related to tagged values

* Updates listeners for restrictedTo inference

* Updates inference criteria

* Updates ApplyProperties

* Improving manipulation of tagged values

* Updates interaction with tagged values

* BugFix

 - Add listeners in projects that were "not created" (when the tool open without opening an existing project)

- Binds tagged value definitions to to stereotypes instead of simply adding them to the stereotype's tagged value definition container

* Bugfix and cleanup

* Bugfix

Updates color when adding existing model element to diagram

* Updates smart modeling of historical roles

* BugFixes and updates menu ordering, menu access, and color scheme

* Bugfix historicalRole rule

* Updates «historicalRoleMixin»

* Updates applicable stereotype based on generalization

* Updates association constraints JSON file

* Updates association constraints JSON file

* Updates ReportErrorAction

* Updates guides and bug report

* Updates README

* Updates images size

* Updates report error URL

* Updates README

* Updates plugin update feature

* Updates README

* Bugfix default cardinalities

* Updates situations support

* Updates README

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
Co-authored-by: Claudenir M. Fonseca <claudenirmf@gmail.com>

* Plugin Update Automation (#61)

* Retrieve releases from GitHub

* Updates release download

* Updates interfaces and download

* Updates periodic lookup for new releases

* Update plugin.xml and general bugfix

* Bugfix

* Improved plugin toolbar

* Extracted nested classes from ViewUtils

* General refactoring and update of releases serialization

* Refactoring

* Refactoring

* Refactoring

* BugFix

Replaces ZonedDateTime serialization to strings

* Refactoring

* Refactoring

* Fixed null pointer bug

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>

* Language Updates (#64)

* Small fixes in the plugin

* Updated restrictedTo dialog

* Plugin version increased

* Minor change to color defaults

* Code refactoring

* Renamed method

* Added association constraints involving datatypes

* Enable isExtensional based on restriction

* Updates stereotypes to include isExtensional

Know bugs:
 - Suggested «characterization» from «quality» to «event»
 - Sortals keep restrictions after generalizations are deleted
 - Changing the stereotype while isExtensional = true does not return the value to false.

* Fixes smart paint for empty restrictedTo

* Fix updates to isExtensional

 - Changes isExtensional to false when "collective" is not the unique
value of restrictedTo
 - Prevents manual changes to isExtensional when prohibited

* Fixed behavior on enabling/desabling menu options on the class contextual menu

* Set navigability when applying a relation stereotype

* Update navigability

* Updates invert association

* Updates meta-property menu: isAbstract and isDerived

* Updates context menu for attributes

* Adds source and target meta-property menus

* Updates suggested stereotypes on both directions

* Updates association inversion warning dialog

* Added allowed associations by ontological nature

* Applies association constraints based on nature restrictions

* Code clean-up

* Added Maven plugin for automatic code formatting

* Add Github Action for styling the code in the Google Java Format

* Google Java Format

* BugFix invert association and reorganizes code

* Google Java Format

* Bugfixes

* Updates labels and stereotype suggestion for multiple selected elements

* Updates invertAssociation() and refactors code

* Google Java Format

* Bugfixes

Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
Co-authored-by: Claudenir Fonseca <claudenirmf@gmail.com>
Co-authored-by: github-actions <>

* Disables UI elements

Disables duplicated "Invert Association" button

* 0.4.0

* New feature: Import/Export diagrams (#86)

* WIP: Add initial version of the new OntoUML library.

* Google Java Format

* Add serialization to the new OntoUML API

* Apply Google Java Format

* Google Java Format

* Add model deserialization with reference resolutionC

* Google Java Format

* Adjust deserialization tests

* Quickfix on ClassDeserializerTest

* WIP: New serialization

* Replace model serialization

* Code cleanup

* Add diagram serialization

* Add diagram deserialization

* Google Java Format

* Upgrade diagram deserialization

* Google Java Format

* Add import project from JSON

Adds a feature to import a whole OntoUML JSON project into Visual Paradigm overriding existing model elements and diagram when duplicates are found.

* Renamed some classes

* Google Java Format

* Use coordinates as int (instead of double)

* Update serialization and request calls

* Fix import behavior: stop overriding existing diagrams and runs autolayout.

* Update service calls

* Google Java Format

* Add PackageView serialization/deserialization

* Update plugin.xml

* Add SimpleServiceWorker

* Updates modularization request

* Update JsonImportAndExportController

* Update GufoExportController

* Fixes NullPointerException on the serialization of inverted derivation

* Disables selection tree in Export to gUFO interface

* Update mode's color and bugfix propagation of "restrictedTo"

* Update version to 0.5.0

* Update default server URL

* Update README and remove reload button

Co-authored-by: github-actions <>
Co-authored-by: Claudenir Fonseca <claudenirmf@gmail.com>

Co-authored-by: Tiago Prince Sales <tgoprince@users.noreply.github.com>
Co-authored-by: Viola <victorviola86@gmail.com>
Co-authored-by: Victor Viola <victor.viola@farfetch.com>
Co-authored-by: Tiago Prince Sales <tgoprince@gmail.com>
Co-authored-by: Tiago Prince Sales <tiago.princesales@unibz.it>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants