use of org.eclipse.che.ide.api.action.Action in project che by eclipse.
the class TerminalPresenter method connectToTerminalWebSocket.
private void connectToTerminalWebSocket(@NotNull String wsUrl) {
countRetry--;
socket = WebSocket.create(wsUrl);
socket.setOnMessageHandler(new MessageReceivedHandler() {
@Override
public void onMessageReceived(MessageReceivedEvent event) {
terminal.write(event.getMessage());
}
});
socket.setOnCloseHandler(new ConnectionClosedHandler() {
@Override
public void onClose(WebSocketClosedEvent event) {
if (CLOSE_NORMAL == event.getCode()) {
connected = false;
terminalStateListener.onExit();
}
}
});
socket.setOnOpenHandler(new ConnectionOpenedHandler() {
@Override
public void onOpen() {
JavaScriptObject terminalJso = moduleHolder.getModule("Xterm");
// if terminal was created programmatically then we don't set focus on it
TerminalOptionsJso terminalOptionsJso = TerminalOptionsJso.createDefault();
if (source instanceof AddTerminalClickHandler || source instanceof Action) {
terminalOptionsJso.withFocusOnOpen(true);
}
terminal = TerminalJso.create(terminalJso, terminalOptionsJso);
connected = true;
view.openTerminal(terminal);
terminal.on(DATA_EVENT_NAME, new Operation<String>() {
@Override
public void apply(String arg) throws OperationException {
Jso jso = Jso.create();
jso.addField("type", "data");
jso.addField("data", arg);
socket.send(jso.serialize());
}
});
}
});
socket.setOnErrorHandler(new ConnectionErrorHandler() {
@Override
public void onError() {
connected = false;
if (countRetry == 0) {
view.showErrorMessage(locale.terminalErrorStart());
notificationManager.notify(locale.connectionFailedWithTerminal(), locale.terminalErrorConnection(), FAIL, FLOAT_MODE);
} else {
reconnect();
}
}
});
}
use of org.eclipse.che.ide.api.action.Action in project che by eclipse.
the class StatusPanelGroupViewImpl method expandActionGroup.
private void expandActionGroup(List<Action> newVisibleActions, ActionManager actionManager, ActionGroup mainActionGroup) {
final Action[] children = mainActionGroup.getChildren(null);
for (final Action action : children) {
final Presentation presentation = presentationFactory.getPresentation(action);
final ActionEvent e = new ActionEvent(presentation, actionManager, perspectiveManager.get());
action.update(e);
if (presentation.isVisible()) {
// add only visible items
newVisibleActions.add(action);
}
if (action2barItem.containsKey(action)) {
action2barItem.get(action).update();
}
}
}
use of org.eclipse.che.ide.api.action.Action in project che by eclipse.
the class ActionManagerImpl method performAction.
@Override
public void performAction(String actionId, Map<String, String> parameters) {
final Action action;
if (actionId != null && (action = getAction(actionId)) != null) {
final Presentation presentation = presentationFactory.getPresentation(action);
final ActionEvent actionEvent = new ActionEvent(presentation, this, managerProvider.get(), parameters);
action.update(actionEvent);
if (presentation.isEnabled() && presentation.isVisible()) {
action.actionPerformed(actionEvent);
}
}
}
use of org.eclipse.che.ide.api.action.Action in project che by eclipse.
the class EditorPartStackPresenterTest method onActionClickedTest.
@Test
public void onActionClickedTest() {
Action action = mock(Action.class);
when(editorPaneActionMenuItem.getData()).thenReturn(action);
presenter.addPart(partPresenter1);
presenter.setActivePart(partPresenter1);
presenter.paneMenuActionItemHandler.onItemClicked(editorPaneActionMenuItem);
verify(presentation).putClientProperty(eq(CURRENT_PANE_PROP), eq(presenter));
verify(presentation).putClientProperty(eq(CURRENT_TAB_PROP), eq(editorTab1));
verify(presentation).putClientProperty(eq(CURRENT_FILE_PROP), eq(file1));
}
use of org.eclipse.che.ide.api.action.Action in project che by eclipse.
the class DropDownWidgetImpl method updateActions.
/**
* Refresh the list of visible actions.
*/
private void updateActions() {
actions.removeAll();
ActionGroup mainActionGroup = (ActionGroup) actionManager.getAction(actionGroupId);
if (mainActionGroup == null) {
return;
}
Action[] children = mainActionGroup.getChildren(null);
for (Action action : children) {
Presentation presentation = presentationFactory.getPresentation(action);
ActionEvent e = new ActionEvent(presentation, actionManager, managerProvider.get());
action.update(e);
if (presentation.isVisible()) {
actions.add(action);
}
}
}
Aggregations