blob: a9cf9a673e89b778c33d252db5f7e2aad4568f7f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.tm.terminal.view.ui.actions;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.window.Window;
import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
import org.eclipse.tm.terminal.view.ui.nls.Messages;
import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
/**
* @since 4.8
*/
public class RenameTerminalAction extends AbstractTerminalAction {
/**
* Constructor.
*
* @param tabFolderManager The parent tab folder manager. Must not be <code>null</code>.
*/
public RenameTerminalAction(TabFolderManager tabFolderManager) {
super(RenameTerminalAction.class.getName());
Assert.isNotNull(tabFolderManager);
setupAction(Messages.RenameTerminalAction_menu, Messages.RenameTerminalAction_tooltip, (ImageDescriptor) null,
(ImageDescriptor) null, (ImageDescriptor) null, true);
}
@Override
public void run() {
ITerminalViewControl target = getTarget();
if (target == null)
return;
InputDialog inputDialog = new InputDialog(target.getControl().getShell(), //
Messages.RenameTerminalAction_inputdialog_title, //
Messages.RenameTerminalAction_inputdialog_prompt, //
Messages.RenameTerminalAction_inputdialog_defaulttext, //
null);
if (inputDialog.open() == Window.OK) {
String value = inputDialog.getValue();
if (value != null) {
target.setTerminalTitle(value);
}
}
}
@Override
public void updateAction(boolean aboutToShow) {
setEnabled(aboutToShow && getTarget() != null);
}
}