|
What this is
Other links
The source code/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.team.internal.ccvs.ui; import java.lang.reflect.InvocationTargetException; import org.eclipse.core.resources.IFolder; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.*; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; import org.eclipse.team.core.TeamException; import org.eclipse.team.internal.ccvs.core.*; import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo; import org.eclipse.team.internal.ccvs.core.util.Util; import org.eclipse.ui.PlatformUI; public class CVSFolderPropertiesPage extends CVSPropertiesPage { IFolder folder; private Label root; private Label repository; /** * @see PreferencePage#createContents(Composite) */ protected Control createContents(Composite parent) { initialize(); noDefaultAndApplyButton(); Composite composite = new Composite(parent, SWT.NULL); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); GridLayout layout = new GridLayout(); layout.numColumns = 2; composite.setLayout(layout); try { ICVSFolder cvsResource = CVSWorkspaceRoot.getCVSFolderFor(folder); if (!cvsResource.isManaged()) { if (cvsResource.isIgnored()) { createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_ignored, 2); } else { createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_notManaged, 2); } } else if (!cvsResource.isCVSFolder()) { // We have a managed folder which is not a cvs folder. // This is really an invalid state but it does happen once in a while createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_notCVSFolder, 2); } else { FolderSyncInfo syncInfo = cvsResource.getFolderSyncInfo(); createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_root); root = createLabel(composite, syncInfo.getRoot()); createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_repository); repository = createLabel(composite, syncInfo.getRepository()); // Tag createLabel(composite, CVSUIMessages.CVSFilePropertiesPage_tag); CVSTag tag = syncInfo.getTag(); if (tag != null && tag.getType() == CVSTag.BRANCH) { tag = Util.getAccurateFolderTag(folder, tag); } createLabel(composite, getTagLabel(tag)); // Static-ness if (syncInfo.getIsStatic()) { createLabel(composite, CVSUIMessages.CVSFolderPropertiesPage_static); createLabel(composite, syncInfo.getIsStatic() ? CVSUIMessages.yes : CVSUIMessages.no); // } createLabel(composite, "", 2); // spacer //$NON-NLS-1$ // Allow the folder to be disconnected from CVS control final Button disconnect = new Button(composite, SWT.NONE); disconnect.setText(CVSUIMessages.CVSFolderPropertiesPage_disconnect); GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END); int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); data.widthHint = Math.max(widthHint, disconnect.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x); disconnect.setLayoutData(data); disconnect.addListener(SWT.Selection, new Listener() { public void handleEvent (Event event) { // perform a disconnect if (disconnectFolder()) { root.setText(CVSUIMessages.CVSFilePropertiesPage_none); repository.setText(CVSUIMessages.CVSFilePropertiesPage_none); disconnect.setEnabled(false); } } }); } } catch (TeamException e) { // Display error text createLabel(composite, CVSUIMessages.CVSFilePropertiesPage_error, 2); } PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IHelpContextIds.FOLDER_PROPERTY_PAGE); Dialog.applyDialogFont(parent); return composite; } /** * Utility method that creates a label instance * and sets the default layout data. * * @param parent the parent for the new label * @param text the text for the new label * @return the new label */ protected Label createLabel(Composite parent, String text, int span) { Label label = new Label(parent, SWT.LEFT); label.setText(text); GridData data = new GridData(); data.horizontalSpan = span; data.horizontalAlignment = GridData.FILL; label.setLayoutData(data); return label; } protected Label createLabel(Composite parent, String text) { return createLabel(parent, text, 1); } /** * Initializes the page */ private void initialize() { // Get the file that is the source of this property page folder = null; IAdaptable element = getElement(); if (element instanceof IFolder) { folder = (IFolder)element; } else { Object adapter = element.getAdapter(IFolder.class); if (adapter instanceof IFolder) { folder = (IFolder)adapter; } } } private boolean disconnectFolder() { if (MessageDialog.openQuestion(getShell(), CVSUIMessages.CVSFolderPropertiesPage_disconnectTitle, CVSUIMessages.CVSFolderPropertiesPage_disconnectQuestion)) { // final ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder); try { PlatformUI.getWorkbench().getProgressService().run(true, false, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { try { cvsFolder.unmanage(null); } catch (CVSException e) { throw new InvocationTargetException(e); } } }); } catch (InvocationTargetException e) { CVSUIPlugin.openError(getShell(), null, null, e); return false; } catch (InterruptedException e) { // Ignore } return true; } else { return false; } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.