git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Marek Zawirski <marek.zawirski@gmail.com>
To: robin.rosenberg@dewire.com, spearce@spearce.org
Cc: git@vger.kernel.org, Marek Zawirski <marek.zawirski@gmail.com>
Subject: [EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff
Date: Sun, 17 Aug 2008 22:43:41 +0200	[thread overview]
Message-ID: <1219005852-21496-1-git-send-email-marek.zawirski@gmail.com> (raw)

That's the final series for one of my core tasks for GSoC: GUI related
stuff. Little late, but it required lot of polishing.

Traditionally, it's also available at
http://repo.or.cz/w/egit/zawir.git?a=shortlog;h=refs/heads/push
But wait... this time it was pushed from Eclipse! ;)

The series consists of few parts:
1) Various small fixes and improvements to jgit.
2) Lot of refactor, fixes, improvements in Git Clone Wizard.
3) Push GUI with some general purpose components.
(more in commit messages)

Fetch GUI is not implemented yet, although with this
Eclipse-experience and new stuff available in .components, I suspect
it we'll be *much* much easier to do it than this push GUI, so I may
try to do it as well, especially if you enjoy this one. I'm just
starting working on that.

Changes in plugin were tested on Eclipse 3.4 at Linux, Windows XP and
partially at MacOS 10.4 (there are some issues that makes it looking
worse there, one very annoying bug is reported to Eclipse' bugzilla).
I'm now using mostly Eclipse 3.4, but I've tried to use up to 3.3 API.
Shawn also tried this code at Eclipse 3.3 on OS X 10.5, at least up to
some stage.

Comments regarding this GUI are welcome, I hope that yet another mind
can bring some ideas. Recently (few days ago), Shawn brought some
great idea of making Eclipse view for results of operations on remote
(fetch, push) instead of dialog. That would be cool, although
unfortunatelly it was too late for me to do it - to change project at
this stage.

I've got some problem with icons right now, as I'm pretty far from
stating that I'm good at doing that sort of art.
Robin, Tor, I know that you were already contributing some graphics to
egit. If someone of you would like to do some icon for push/fetch with
pleasure, you are welcome. Otherwise I'll have to do some crappy icon
instead ;) Another matter are checkboxes screenshots. I'm not sure
about legality status of including them. Any ideas if/how we co use
them or some another set that we can for sure?

Although that's last big portion of code during this GSoC from me,
I may send some smaller things in next 2 days or fix this stuff if
needed.

Have fun with push;>
Marek / zawir

Marek Zawirski (31):
  Fix Repository.mapObject() for missing objects
  Fix Repository isValidRefName() for empty names
  Fix Repository.resolve() to not throw runtime exceptions
  Document/fix Transport open method for specific case
  Fix RefSpec javadoc regarding spec expanding
  Make wildcard checking public in RefSpec
  Add openAll() and applyConfig() methods to Transport
  Add dryRun option to Transport and console push
  Extract Transport findRemoteRefUpdatesFor() as static method
  Improve javadoc of Transport push()
  Clean up exception issues in RemoteRefUpdate
  Add another RemoteRefUpdate constructor, useful for 2-stage push
  Add getAllRemoteConfigs() to RemoteConfig
  Add setFetchRefSpecs and setPushRefSpecs to RemoteConfig
  Add simple abbreviate() method to ObjectId
  Remove debug/test console output from GitIndex
  Fix typo in uitext.properties message
  Refactor/rewrite CloneSourcePage to universal RepositorySelectionPage
  Clone wizard and related: refactor, clean-up, fixes or improvements
  Move clone logic away from GitCloneWizard to CloneOperation
  Add canCreateSubdir() heuristic in CloneDestinationPage
  Set FileDialog selection appropriately in clone wizard
  Allow selecting empty dir in clone wizard
  Clone wizard: force dir to suggested path only if repo selection
    change
  Create ListRemoteOperation for listing remote repo branches
  Make Clone's SourceBranchPage more user-friendly
  Add few EPL Eclipse icons
  Checkbox images/screenshots
  Universal GUI for specifications edition: RefSpecPanel and related
  Add PushOperation to plugin
  Push GUI

 .../src/org/spearce/egit/core/CoreText.java        |   18 +
 .../src/org/spearce/egit/core/coretext.properties  |    8 +
 .../org/spearce/egit/core/op/CloneOperation.java   |  129 ++-
 .../spearce/egit/core/op/ListRemoteOperation.java  |  104 ++
 .../org/spearce/egit/core/op/PushOperation.java    |  148 ++
 .../spearce/egit/core/op/PushOperationResult.java  |  273 +++
 .../egit/core/op/PushOperationSpecification.java   |   82 +
 .../icons/checkboxes/disabled_checked.gif          |  Bin 0 -> 166 bytes
 .../icons/checkboxes/disabled_unchecked.gif        |  Bin 0 -> 125 bytes
 .../icons/checkboxes/enabled_checked.gif           |  Bin 0 -> 166 bytes
 .../icons/checkboxes/enabled_unchecked.gif         |  Bin 0 -> 157 bytes
 org.spearce.egit.ui/icons/elcl16/add.gif           |  Bin 0 -> 318 bytes
 org.spearce.egit.ui/icons/elcl16/clear.gif         |  Bin 0 -> 595 bytes
 org.spearce.egit.ui/icons/elcl16/delete.gif        |  Bin 0 -> 351 bytes
 org.spearce.egit.ui/icons/elcl16/trash.gif         |  Bin 0 -> 590 bytes
 org.spearce.egit.ui/plugin.properties              |    3 +
 org.spearce.egit.ui/plugin.xml                     |   15 +
 .../src/org/spearce/egit/ui/UIIcons.java           |   25 +
 .../src/org/spearce/egit/ui/UIText.java            |  398 ++++-
 .../egit/ui/internal/actions/PushAction.java       |   47 +
 .../ui/internal/clone/BranchChangeListener.java    |   13 -
 .../ui/internal/clone/CloneDestinationPage.java    |  165 ++-
 .../egit/ui/internal/clone/CloneSourcePage.java    |  460 -----
 .../egit/ui/internal/clone/GitCloneWizard.java     |   92 +-
 .../egit/ui/internal/clone/SourceBranchPage.java   |  327 ++--
 .../ui/internal/components/BaseWizardPage.java     |   58 +
 .../components/CenteredImageLabelProvider.java     |   52 +
 .../internal/components/CheckboxLabelProvider.java |  138 ++
 .../internal/components/ClickableCellEditor.java   |   68 +
 .../internal/components/ComboLabelingSupport.java  |   77 +
 .../ui/internal/components/RefContentProposal.java |  140 ++
 .../egit/ui/internal/components/RefSpecPage.java   |  237 +++
 .../egit/ui/internal/components/RefSpecPanel.java  | 1823 ++++++++++++++++++++
 .../internal/components/RepositorySelection.java   |  133 ++
 .../components/RepositorySelectionPage.java        |  663 +++++++
 .../SelectionChangeListener.java}                  |   19 +-
 .../egit/ui/internal/push/ConfirmationPage.java    |  211 +++
 .../egit/ui/internal/push/PushResultTable.java     |  327 ++++
 .../spearce/egit/ui/internal/push/PushWizard.java  |  250 +++
 .../ui/internal/push/RefUpdateContentProvider.java |   62 +
 .../egit/ui/internal/push/RefUpdateElement.java    |   67 +
 .../egit/ui/internal/push/ResultDialog.java        |   65 +
 .../src/org/spearce/egit/ui/uitext.properties      |  163 ++-
 .../src/org/spearce/jgit/pgm/Fetch.java            |   10 +-
 .../src/org/spearce/jgit/pgm/Push.java             |   55 +-
 .../src/org/spearce/jgit/pgm/TextBuiltin.java      |    4 -
 .../src/org/spearce/jgit/lib/AnyObjectId.java      |   15 +
 .../src/org/spearce/jgit/lib/GitIndex.java         |    3 -
 .../src/org/spearce/jgit/lib/Repository.java       |   64 +-
 .../src/org/spearce/jgit/lib/RepositoryConfig.java |   21 +
 .../org/spearce/jgit/transport/PushProcess.java    |   18 +-
 .../src/org/spearce/jgit/transport/RefSpec.java    |   29 +-
 .../org/spearce/jgit/transport/RemoteConfig.java   |   50 +
 .../spearce/jgit/transport/RemoteRefUpdate.java    |   40 +-
 .../src/org/spearce/jgit/transport/Transport.java  |  283 +++-
 55 files changed, 6471 insertions(+), 981 deletions(-)
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/ListRemoteOperation.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperation.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationSpecification.java
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/disabled_checked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/disabled_unchecked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/enabled_checked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/enabled_unchecked.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/add.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/clear.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/delete.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/trash.gif
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/PushAction.java
 delete mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/clone/BranchChangeListener.java
 delete mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/clone/CloneSourcePage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/BaseWizardPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/CenteredImageLabelProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/CheckboxLabelProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/ClickableCellEditor.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/ComboLabelingSupport.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefContentProposal.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RepositorySelection.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RepositorySelectionPage.java
 rename org.spearce.egit.ui/src/org/spearce/egit/ui/internal/{clone/URIishChangeListener.java => components/SelectionChangeListener.java} (51%)
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushWizard.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateElement.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ResultDialog.java

             reply	other threads:[~2008-08-17 20:45 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-17 20:43 Marek Zawirski [this message]
2008-08-17 20:43 ` [EGIT PATCH 01/31] Fix Repository.mapObject() for missing objects Marek Zawirski
2008-08-17 20:43   ` [EGIT PATCH 02/31] Fix Repository isValidRefName() for empty names Marek Zawirski
2008-08-17 20:43     ` [EGIT PATCH 03/31] Fix Repository.resolve() to not throw runtime exceptions Marek Zawirski
2008-08-17 20:43       ` [EGIT PATCH 04/31] Document/fix Transport open method for specific case Marek Zawirski
2008-08-17 20:43         ` [EGIT PATCH 05/31] Fix RefSpec javadoc regarding spec expanding Marek Zawirski
2008-08-17 20:43           ` [EGIT PATCH 06/31] Make wildcard checking public in RefSpec Marek Zawirski
2008-08-17 20:43             ` [EGIT PATCH 07/31] Add openAll() and applyConfig() methods to Transport Marek Zawirski
2008-08-17 20:43               ` [EGIT PATCH 08/31] Add dryRun option to Transport and console push Marek Zawirski
2008-08-17 20:43                 ` [EGIT PATCH 09/31] Extract Transport findRemoteRefUpdatesFor() as static method Marek Zawirski
2008-08-17 20:43                   ` [EGIT PATCH 10/31] Improve javadoc of Transport push() Marek Zawirski
2008-08-17 20:43                     ` [EGIT PATCH 11/31] Clean up exception issues in RemoteRefUpdate Marek Zawirski
2008-08-17 20:43                       ` [EGIT PATCH 12/31] Add another RemoteRefUpdate constructor, useful for 2-stage push Marek Zawirski
2008-08-17 20:43                         ` [EGIT PATCH 13/31] Add getAllRemoteConfigs() to RemoteConfig Marek Zawirski
2008-08-17 20:43                           ` [EGIT PATCH 14/31] Add setFetchRefSpecs and setPushRefSpecs " Marek Zawirski
2008-08-17 20:43                             ` [EGIT PATCH 15/31] Add simple abbreviate() method to ObjectId Marek Zawirski
2008-08-17 20:43                               ` [EGIT PATCH 16/31] Remove debug/test console output from GitIndex Marek Zawirski
2008-08-17 20:43                                 ` [EGIT PATCH 17/31] Fix typo in uitext.properties message Marek Zawirski
2008-08-17 20:43                                   ` [EGIT PATCH 18/31] Refactor/rewrite CloneSourcePage to universal RepositorySelectionPage Marek Zawirski
2008-08-17 20:44                                     ` [EGIT PATCH 19/31] Clone wizard and related: refactor, clean-up, fixes or improvements Marek Zawirski
2008-08-17 20:44                                       ` [EGIT PATCH 20/31] Move clone logic away from GitCloneWizard to CloneOperation Marek Zawirski
2008-08-17 20:44                                         ` [EGIT PATCH 21/31] Add canCreateSubdir() heuristic in CloneDestinationPage Marek Zawirski
2008-08-17 20:44                                           ` [EGIT PATCH 22/31] Set FileDialog selection appropriately in clone wizard Marek Zawirski
2008-08-17 20:44                                             ` [EGIT PATCH 23/31] Allow selecting empty dir " Marek Zawirski
2008-08-17 20:44                                               ` [EGIT PATCH 24/31] Clone wizard: force dir to suggested path only if repo selection change Marek Zawirski
2008-08-17 20:44                                                 ` [EGIT PATCH 25/31] Create ListRemoteOperation for listing remote repo branches Marek Zawirski
2008-08-17 20:44                                                   ` [EGIT PATCH 26/31] Make Clone's SourceBranchPage more user-friendly Marek Zawirski
2008-08-17 20:44                                                     ` [EGIT PATCH 27/31] Add few EPL Eclipse icons Marek Zawirski
2008-08-17 20:44                                                       ` [EGIT PATCH 28/31] Checkbox images/screenshots Marek Zawirski
2008-08-17 20:44                                                         ` [EGIT PATCH 29/31] Universal GUI for specifications edition: RefSpecPanel and related Marek Zawirski
2008-08-17 20:44                                                           ` [EGIT PATCH 30/31] Add PushOperation to plugin Marek Zawirski
2008-08-17 20:44                                                             ` [EGIT PATCH 31/31] Push GUI Marek Zawirski
2008-08-19 18:24                                                         ` [EGIT PATCH 28/31] Checkbox images/screenshots Robin Rosenberg
2008-08-19 16:45                         ` [EGIT PATCH 12/31] Add another RemoteRefUpdate constructor, useful for 2-stage push Shawn O. Pearce
2008-08-19 16:28                 ` [EGIT PATCH 08/31] Add dryRun option to Transport and console push Shawn O. Pearce
2008-08-19 17:59 ` [EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff Shawn O. Pearce
2008-08-19 19:21   ` Robin Rosenberg
2008-08-20  2:42     ` Marek Zawirski
2008-08-20  2:57       ` [EGIT PATCH 1/6] Remove DEFAULT_DRY_RUN constant from Transport Marek Zawirski
2008-08-20  2:57         ` [EGIT PATCH 2/6] Emphasize that db is a local one in RemoteRefUpdate Marek Zawirski
2008-08-20  2:57           ` [EGIT PATCH 3/6] Handle URIs parsing errors in PushAction better Marek Zawirski
2008-08-20  2:57             ` [EGIT PATCH 4/6] Fix proposal provider for fetch in RefSpecPanel Marek Zawirski
2008-08-20  2:57               ` [EGIT PATCH 5/6] Fix disappearing "save configuration" label in RefSpecPage Marek Zawirski
2008-08-20  2:57                 ` [EGIT PATCH 6/6] Fix RefSpecPage formatting Marek Zawirski
2008-08-20 14:13       ` [EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff Shawn O. Pearce
2008-08-20 15:23         ` Git-aware Issue Tracking? Petr Baudis
2008-08-20 16:44           ` Shawn O. Pearce
2008-08-20 20:25             ` Robin Rosenberg
2008-08-21  8:47             ` Martin Langhoff
2008-08-20 18:52           ` Jakub Narebski
2008-08-21  8:30             ` Pierre Habouzit
2008-08-21  9:23               ` Jakub Narebski
2008-08-20 20:22           ` Mike Dalessio
2008-08-21  8:55           ` Imran M Yousuf
2008-08-25 13:59         ` [EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff Marek Zawirski
2008-08-25 14:24           ` Shawn O. Pearce
2008-08-21 20:12       ` Robin Rosenberg
2008-08-21 20:16         ` Shawn O. Pearce
2008-08-21 23:25           ` Robin Rosenberg
2008-08-22  3:05             ` Shawn O. Pearce
2008-08-25 14:13             ` Marek Zawirski
2008-08-25 14:15               ` Shawn O. Pearce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1219005852-21496-1-git-send-email-marek.zawirski@gmail.com \
    --to=marek.zawirski@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=robin.rosenberg@dewire.com \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).