[duplicate code] Refactor SimpleConfigure(Fetch|Push)Dialog
commit6179a9b8865d6f2c3bd842f2be4d0a4751a4e930
authorThomas Wolf <thomas.wolf@paranor.ch>
Thu, 12 Jan 2017 09:43:30 +0000 (12 10:43 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 9 Mar 2017 21:09:02 +0000 (9 22:09 +0100)
tree7e25222a03c97efbf5514ddb30ad25ed1c0ae883
parente7792e720fdc12108c0f1d8f2071a88d61fde78d
[duplicate code] Refactor SimpleConfigure(Fetch|Push)Dialog

These two classes were a bad case of copy-paste programming. Resolve
code duplication by factoring out common things into a common super
class, give dialogs an image to make them look better in the dark
theme, and catch exceptions in RefSpecDialog.

Use actions instead of buttons for the, well, _actions_ available on
refspecs, use them in a context menu, and register the actions. Thus
copy/paste/etc. can be handled the standard way without having to
add a key listener to the table. Make the buttons use these actions,
and make the buttons respect the action enablement.

Remove the last remnants of the ADVANCED_MODE preference. Originally
these dialogs had an expandable section for advanced configuration,
and that preference recorded whether it was expanded. However, in
commit 6514813 on 2012-03-15, this whole expandable section was
removed and thus there was no way anymore to set that preference
to any value. But the dialogs still tested it... which means the
"Modify..." button would basically never appear. Now it is always
present.

Note that there is more not so obvious "duplication" regarding
RefSpecDialog and SimpleFetchRefSpecWizard. It seems to me these are
two different implementations for basically the same functionality.
I plan to clean that up in a later commit, which is why in
RefSpecDialog I only added catching (and ignoring) exceptions, but
didn't add some mechanism to display warnings or errors. Thus the
current behavior is unchanged, except for not logging exceptions
during typing.

Change-Id: Ice317a210461e71f71b633227f39907ca651b86d
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewRemoteHandlingTest.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RefSpecPage.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java [new file with mode: 0644]
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/SimpleConfigureFetchDialog.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/SimpleFetchRefSpecWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/RefSpecDialog.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/SelectUriWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties