|
From: Mikael P. <er...@us...> - 2011-12-16 15:01:47
|
Update of /cvsroot/eclipse-ccase/net.sourceforge.eclipseccase.ui/src/net/sourceforge/eclipseccase/ui
In directory vz-cvs-4.sog:/tmp/cvs-serv17895/src/net/sourceforge/eclipseccase/ui
Modified Files:
UcmActivity.java ClearCaseUIModificationHandler.java
Log Message:
Commited fix for handling refactor and "automatic checkout".
Index: ClearCaseUIModificationHandler.java
===================================================================
RCS file: /cvsroot/eclipse-ccase/net.sourceforge.eclipseccase.ui/src/net/sourceforge/eclipseccase/ui/ClearCaseUIModificationHandler.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** ClearCaseUIModificationHandler.java 6 Dec 2011 09:11:40 -0000 1.18
--- ClearCaseUIModificationHandler.java 16 Dec 2011 15:01:44 -0000 1.19
***************
*** 65,74 ****
*/
private IStatus checkout(final IFile[] files, final Shell shell) {
final ClearCaseProvider provider = getProvider(files);
if (PreventCheckoutHelper.isPreventedFromCheckOut(provider, files, true))
return CANCEL;
!
final IResource[] resources = PreventCheckoutHelper.isCheckedOut(provider, files);
! if(resources.length == 0 || resources == null){
return CANCEL;
}
--- 65,75 ----
*/
private IStatus checkout(final IFile[] files, final Shell shell) {
+ System.out.println(getClass().getName()+"checkout()");
final ClearCaseProvider provider = getProvider(files);
if (PreventCheckoutHelper.isPreventedFromCheckOut(provider, files, true))
return CANCEL;
!
final IResource[] resources = PreventCheckoutHelper.isCheckedOut(provider, files);
! if (resources.length == 0 || resources == null) {
return CANCEL;
}
***************
*** 85,90 ****
final boolean askForComment = ClearCasePreferences.isCommentCheckout() && !ClearCasePreferences.isCommentCheckoutNeverOnAuto();
! // UCM checkout.
! if (ClearCasePreferences.isUCM() && !ClearCasePreferences.isUseClearDlg()) {
if (!UcmActivity.checkoutWithActivity(provider, resources, shell))
// no checkout
--- 86,91 ----
final boolean askForComment = ClearCasePreferences.isCommentCheckout() && !ClearCasePreferences.isCommentCheckoutNeverOnAuto();
! // UCM Show ActivityDialog with comment
! if (ClearCasePreferences.isUCM() && !ClearCasePreferences.isUseClearDlg() && askForComment) {
if (!UcmActivity.checkoutWithActivity(provider, resources, shell))
// no checkout
***************
*** 177,181 ****
/*
! * (non-Javadoc)
*
* @see
--- 178,182 ----
/*
! * This is used by "refactoring" and "auto checkout". (non-Javadoc)
*
* @see
***************
*** 187,208 ****
public IStatus validateEdit(final IFile[] files, final FileModificationValidationContext context) {
if (ClearCasePreferences.isCheckoutAutoNever())
return CANCEL;
final Shell shell = getShell(context);
final boolean askForComment = ClearCasePreferences.isCommentCheckout() && !ClearCasePreferences.isCommentCheckoutNeverOnAuto();
if (null == shell || !askForComment) {
!
! // UCM checkout we need to use a ActivityDialog.
! if (ClearCasePreferences.isUCM() && !ClearCasePreferences.isUseClearDlg()) {
! if (null == shell) {
! return checkout(files,PlatformUI.getWorkbench().getDisplay().getActiveShell());
! } else {
! return checkout(files, shell);
! }
! }
!
!
!
return super.validateEdit(files, context);
}
try {
this.validateEditLock.acquire();
--- 188,202 ----
public IStatus validateEdit(final IFile[] files, final FileModificationValidationContext context) {
if (ClearCasePreferences.isCheckoutAutoNever())
+ // FIXME: We need to inform user that Auto checkout is never
+ // allowed.
return CANCEL;
+ // We are allowed to checkout file.
final Shell shell = getShell(context);
final boolean askForComment = ClearCasePreferences.isCommentCheckout() && !ClearCasePreferences.isCommentCheckoutNeverOnAuto();
if (null == shell || !askForComment) {
! System.out.println("Shell is set to "+shell+" and askForComment is "+askForComment);
return super.validateEdit(files, context);
}
+
try {
this.validateEditLock.acquire();
Index: UcmActivity.java
===================================================================
RCS file: /cvsroot/eclipse-ccase/net.sourceforge.eclipseccase.ui/src/net/sourceforge/eclipseccase/ui/UcmActivity.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** UcmActivity.java 14 Nov 2011 12:09:52 -0000 1.9
--- UcmActivity.java 16 Dec 2011 15:01:44 -0000 1.10
***************
*** 12,15 ****
--- 12,17 ----
package net.sourceforge.eclipseccase.ui;
+ import org.eclipse.swt.widgets.Display;
+
import net.sourceforge.eclipseccase.ClearCaseProvider;
import net.sourceforge.eclipseccase.ui.dialogs.ActivityDialog;
***************
*** 25,28 ****
--- 27,82 ----
*/
public class UcmActivity {
+
+
+ //private class
+ private static class ActivityDialogRunnable implements Runnable {
+
+ private Shell shell;
+
+ private ClearCaseProvider provider;
+
+ private IResource[] resources;
+
+ private boolean checkout;
+
+ public ActivityDialogRunnable(ClearCaseProvider provider, IResource[] resources, Shell shell) {
+ this.provider = provider;
+ this.resources = resources;
+ this.shell = shell;
+ }
+
+ public void run() {
+ final IResource resource = resources[0];
+ if (resource != null) {
+ final String view = ClearCaseProvider.getViewName(resource);
+ ActivityDialog dlg = new ActivityDialog(shell, provider, resource);
+ dlg.setBlockOnOpen(true);
+ if (dlg.open() == Window.OK) {
+
+ String activity = dlg.getSelectedActivity();
+ if (activity != null) {
+ provider.setActivity(activity, view);
+ setCheckout(true);
+ }
+
+ } else {
+ // Answer was N or Cancel.
+ setCheckout(false);
+ }
+
+ }
+ // resource null don't check-out.
+ setCheckout(false);
+ }
+
+ public void setCheckout(boolean checkout) {
+ this.checkout = checkout;
+ }
+
+ public boolean getCheckout() {
+ return checkout;
+ }
+
+ }
/**
***************
*** 33,57 ****
* @return
*/
! public static boolean checkoutWithActivity(ClearCaseProvider provider, IResource[] resources, Shell shell) {
!
! IResource resource = resources[0];
! if (resource != null) {
! String view = ClearCaseProvider.getViewName(resource);
! ActivityDialog dlg = new ActivityDialog(shell, provider, resource);
! if (dlg.open() == Window.OK) {
! String activity = dlg.getSelectedActivity();
! if (activity != null) {
! provider.setActivity(activity, view);
! return true;
! }
! } else
! // Answer was N or Cancel.
! return false;
- return true;
- }
- // resource null don't check-out.
- return false;
}
--- 87,96 ----
* @return
*/
! public static boolean checkoutWithActivity( ClearCaseProvider provider, IResource[] resources, Shell shell) {
! ActivityDialogRunnable activityDialog = new ActivityDialogRunnable(provider, resources, shell);
! Display.getDefault().syncExec(activityDialog);
! return activityDialog.getCheckout();
}
|