Policy.bind("HistoryView.createTagFromRevision"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_TAG)) {
Policy.bind("HistoryView.createTagFromRevision"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_MENU_BRANCHTAG)) {
  private IAction getCreateTagFromRevisionAction() {    if(createTagFromRevisionAction == null) {      createTagFromRevisionAction = new Action(          Policy.bind("HistoryView.createTagFromRevision"), SVNUIPlugin.getPlugin().getImageDescriptor(ISVNUIConstants.IMG_TAG)) { //$NON-NLS-1$        public void run() {          ISelection selection = getSelection();          if( !(selection instanceof IStructuredSelection))            return;          ILogEntry currentSelection = getLogEntry((IStructuredSelection) selection);          BranchTagDialog dialog;          if(resource == null)            dialog = new BranchTagDialog(getSite().getShell(), historyTableProvider.getRemoteResource());          else            dialog = new BranchTagDialog(getSite().getShell(), resource);          dialog.setRevisionNumber(currentSelection.getRevision().getNumber());          if(dialog.open() == BranchTagDialog.CANCEL)            return;          final SVNUrl sourceUrl = dialog.getUrl();          final SVNUrl destinationUrl = dialog.getToUrl();          final String message = dialog.getComment();          final SVNRevision revision = dialog.getRevision();          boolean createOnServer = dialog.isCreateOnServer();          IResource[] resources = { resource};          try {            if(resource == null) {              BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {                public void run() {                  try {                    ISVNClientAdapter client = SVNProviderPlugin.getPlugin().getSVNClientManager().createSVNClient();                    client.copy(sourceUrl, destinationUrl, message, revision);                  } catch(Exception e) {                    MessageDialog.openError(getSite().getShell(), Policy.bind("HistoryView.createTagFromRevision"), e                        .getMessage());                  }                }              });            } else {              new BranchTagOperation(getSite().getPage().getActivePart(), resources, sourceUrl, destinationUrl,                  createOnServer, dialog.getRevision(), message).run();            }          } catch(Exception e) {            MessageDialog.openError(getSite().getShell(), Policy.bind("HistoryView.createTagFromRevision"), e                .getMessage());          }        }      };    }    return createTagFromRevisionAction;  }