/* (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ @Override protected void okPressed() { String text = getValue(); try { DsfUIPlugin.getDefault() .getPreferenceStore() .setValue(IDebugUIConstants.PREF_MAX_DETAIL_LENGTH, Integer.parseInt(text)); } catch (NumberFormatException e) { DsfUIPlugin.log(e); } super.okPressed(); }
@Override protected void execute(final DataRequestMonitor<FormattedValueDMData> rm) { DsfSession session = DsfSession.getSession(frame.getSessionId()); IExpressions expressions = dsfServicesTracker.getService(IExpressions.class); if (expressions == null) { rm.setStatus( DsfUIPlugin.newErrorStatus( IDsfStatusConstants.REQUEST_FAILED, "No expression service", null)); // $NON-NLS-1$ rm.done(); return; } IExpressionDMContext expressionDMC = expressions.createExpression(frame, expression); FormattedValueDMContext formattedValueContext = expressions.getFormattedValueContext(expressionDMC, getHoverFormat()); expressions.getFormattedExpressionValue( formattedValueContext, new DataRequestMonitor<FormattedValueDMData>(session.getExecutor(), rm) { @Override protected void handleSuccess() { rm.setData(getData()); rm.done(); } @Override protected void handleFailure() { rm.done(); } }); }
@Override protected String evaluateExpression(String expression) { IFrameDMContext frame = getFrame(); if (frame == null) { return null; } String sessionId = frame.getSessionId(); DsfServicesTracker dsfServicesTracker = new DsfServicesTracker(DsfUIPlugin.getBundleContext(), sessionId); try { GetExpressionValueQuery query = new GetExpressionValueQuery(frame, expression, dsfServicesTracker); DsfSession session = DsfSession.getSession(sessionId); if (session != null) { session.getExecutor().execute(query); try { FormattedValueDMData data = query.get(); if (data != null) return data.getFormattedValue(); } catch (Exception e) { } } } finally { dsfServicesTracker.dispose(); } return null; }
@ThreadSafe private synchronized IRegisters getService() { String serviceId = DsfServices.createServiceFilter(IRegisters.class, fSession.getId()); if (fServiceTracker == null) { try { fServiceTracker = new ServiceTracker( DsfUIPlugin.getBundleContext(), DsfUIPlugin.getBundleContext().createFilter(serviceId), null); fServiceTracker.open(); } catch (InvalidSyntaxException e) { return null; } } return (IRegisters) fServiceTracker.getService(); }
/* (non-Javadoc) * @see org.eclipse.ui.dialogs.SelectionDialog#getDialogBoundsSettings() */ @Override protected IDialogSettings getDialogBoundsSettings() { IDialogSettings settings = DsfUIPlugin.getDefault().getDialogSettings(); IDialogSettings section = settings.getSection(SETTINGS_ID); if (section == null) { section = settings.addNewSection(SETTINGS_ID); } return section; }
/** * Constructs a new dialog on the given shell. * * @param parent shell */ public DetailPaneMaxLengthDialog(Shell parent) { super(parent); setShellStyle(getShellStyle() | SWT.RESIZE); fValue = Integer.toString( DsfUIPlugin.getDefault() .getPreferenceStore() .getInt(IDebugUIConstants.PREF_MAX_DETAIL_LENGTH)); fValidator = new IInputValidator() { public String isValid(String newText) { try { int num = Integer.parseInt(newText); if (num < 0) { return MessagesForDetailPane.PaneMaxLengthDialog_IntegerCannotBeNegative; } } catch (NumberFormatException e) { return MessagesForDetailPane.PaneMaxLengthDialog_EnterAnInteger; } return null; } }; }