org.chromium.debug.ui/src/org/chromium/debug/ui/source/SourceNameMapperContainerDialogLogic.java
author Eugene Ostroukhov <eugeneo@symbian.org>
Mon, 07 Jun 2010 16:51:19 -0700
changeset 355 8726e95bcbba
permissions -rw-r--r--
Initial commit of updated Chrome Java SDK
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
355
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     2
// Use of this source code is governed by a BSD-style license that can be
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     3
// found in the LICENSE file.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     4
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     5
package org.chromium.debug.ui.source;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     6
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     7
import static org.chromium.debug.ui.DialogUtils.createErrorOptional;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     8
import static org.chromium.debug.ui.DialogUtils.createOptional;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     9
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    10
import java.util.ArrayList;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    11
import java.util.Arrays;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    12
import java.util.Collections;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    13
import java.util.List;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    14
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    15
import org.chromium.debug.ui.DialogUtils.ExpressionProcessor;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    16
import org.chromium.debug.ui.DialogUtils.Message;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    17
import org.chromium.debug.ui.DialogUtils.MessagePriority;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    18
import org.chromium.debug.ui.DialogUtils.OkButtonControl;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    19
import org.chromium.debug.ui.DialogUtils.Optional;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    20
import org.chromium.debug.ui.DialogUtils.Updater;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    21
import org.chromium.debug.ui.DialogUtils.ValueConsumer;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    22
import org.chromium.debug.ui.DialogUtils.ValueProcessor;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    23
import org.chromium.debug.ui.DialogUtils.ValueSource;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    24
import org.chromium.debug.ui.source.SourceNameMapperContainerDialog.ConfigureButtonAction;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    25
import org.chromium.debug.ui.source.SourceNameMapperContainerDialog.ContainerStatusGroup;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    26
import org.chromium.debug.ui.source.SourceNameMapperContainerDialog.Elements;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    27
import org.chromium.debug.ui.source.SourceNameMapperContainerDialog.PresetFieldValues;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    28
import org.chromium.debug.ui.source.SourceNameMapperContainerDialog.Result;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    29
import org.eclipse.debug.core.sourcelookup.ISourceContainer;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    30
import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    31
import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    32
import org.eclipse.debug.ui.DebugUITools;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    33
import org.eclipse.osgi.util.NLS;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    34
import org.eclipse.swt.events.ModifyEvent;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    35
import org.eclipse.swt.events.ModifyListener;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    36
import org.eclipse.swt.events.SelectionAdapter;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    37
import org.eclipse.swt.events.SelectionEvent;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    38
import org.eclipse.swt.events.SelectionListener;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    39
import org.eclipse.swt.graphics.Image;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    40
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    41
/**
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    42
 * A separated logic of {@link SourceNameMapperContainerDialog}. It describes how data flows
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    43
 * from input elements to the OK button with all necessary asserts. Basically it only uses
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    44
 * {@link SourceNameMapperContainerDialog.Elements} interface from the dialog.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    45
 */
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    46
abstract class SourceNameMapperContainerDialogLogic {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    47
  abstract Result getResult();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    48
  abstract void updateAll();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    49
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    50
  static SourceNameMapperContainerDialogLogic create(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    51
      final Elements elements, final ISourceLookupDirector director,
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    52
      final PresetFieldValues initialParams) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    53
    final Updater updater = new Updater();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    54
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    55
    final List<ValueSource<String>> warningSources = new ArrayList<ValueSource<String>>(2);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    56
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    57
    // Represents value entered as prefix.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    58
    final ValueSource<String> prefixEditor = new ValueSource<String>() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    59
      public String getValue() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    60
        return elements.getPrefixField().getText();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    61
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    62
      {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    63
        if (initialParams != null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    64
          elements.getPrefixField().setText(initialParams.getPrefix());
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    65
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    66
        final ValueSource<String> updatableThis = this;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    67
        ModifyListener listener = new ModifyListener() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    68
          public void modifyText(ModifyEvent e) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    69
            updater.reportChanged(updatableThis);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    70
            updater.update();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    71
          }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    72
        };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    73
        elements.getPrefixField().addModifyListener(listener);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    74
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    75
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    76
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    77
    // Represents prefix value after it has been validated.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    78
    final ValueProcessor<Optional<String>> prefixValue = new ExpressionProcessor<String>(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    79
        Collections.<ValueSource<? extends Optional<?>>>emptyList()) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    80
      @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    81
      protected Optional<String> calculateNormal() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    82
        String prefix = prefixEditor.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    83
        Optional<String> result;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    84
        if (prefix == null || prefix.length() == 0) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    85
          return createErrorOptional(new Message(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    86
              Messages.SourceNameMapperContainerDialog_ENTER_PREFIX,
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    87
              MessagePriority.BLOCKING_INFO));
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    88
        } else {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    89
          return createOptional(prefix);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    90
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    91
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    92
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    93
    updater.addConsumer(prefixValue, prefixEditor);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    94
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    95
    // Represents possible warning about prefix value having no trailing slash.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    96
    ValueProcessor<String> noSlashWarning = new ValueProcessor<String>() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    97
      public void update(Updater updater) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    98
        Optional<String> prefix = prefixValue.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    99
        String result;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   100
        if (prefix.isNormal() && !prefix.getNormal().endsWith("/")) { //$NON-NLS-1$
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   101
          result = Messages.SourceNameMapperContainerDialog_PREFIX_NORMALLY_ENDS;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   102
        } else {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   103
          result = null;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   104
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   105
        setCurrentValue(result);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   106
        updater.reportChanged(this);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   107
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   108
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   109
    updater.addConsumer(noSlashWarning, prefixValue);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   110
    warningSources.add(noSlashWarning);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   111
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   112
    // Represents prefix rule example printer.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   113
    ValueConsumer prefixExample = new ValueConsumer() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   114
      public void update(Updater updater) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   115
        Optional<String> prefix = prefixValue.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   116
        String line1;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   117
        String line2;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   118
        if (prefix.isNormal()) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   119
          String sampleFileName = Messages.SourceNameMapperContainerDialog_SAMPLE_FILE_NAME;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   120
          line1 = NLS.bind(Messages.SourceNameMapperContainerDialog_EXAMPLE_1,
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   121
              prefix.getNormal() + sampleFileName);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   122
          line2 = NLS.bind(Messages.SourceNameMapperContainerDialog_EXAMPLE_2, sampleFileName);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   123
        } else {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   124
          line1 = ""; //$NON-NLS-1$
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   125
          line2 = ""; //$NON-NLS-1$
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   126
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   127
        elements.getPrefixExampleLine1Label().setText(line1);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   128
        elements.getPrefixExampleLine2Label().setText(line2);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   129
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   130
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   131
    updater.addConsumer(prefixExample, prefixValue);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   132
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   133
    // Represents container type combo box.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   134
    final ValueSource<ISourceContainerType> selectedTypeValue =
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   135
        new ValueSource<ISourceContainerType>() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   136
      public ISourceContainerType getValue() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   137
        return elements.getContainerTypeCombo().getSelected();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   138
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   139
      {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   140
        if (initialParams != null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   141
          ISourceContainerType type = initialParams.getContainer().getType();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   142
          elements.getContainerTypeCombo().setSelected(type);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   143
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   144
        final ValueSource<ISourceContainerType> updatableThis = this;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   145
        SelectionListener listener = new SelectionAdapter() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   146
          @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   147
          public void widgetSelected(SelectionEvent e) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   148
            updater.reportChanged(updatableThis);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   149
            updater.update();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   150
          }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   151
        };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   152
        elements.getContainerTypeCombo().addSelectionListener(listener);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   153
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   154
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   155
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   156
    // Represents "Configure" button that acts like a container factory.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   157
    final ValueProcessor<ISourceContainer> containerFactoryButtonValue =
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   158
        new ValueProcessor<ISourceContainer>() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   159
      private ConfigureButtonAction preparedAction = null;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   160
      {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   161
        if (initialParams != null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   162
          setCurrentValue(initialParams.getContainer());
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   163
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   164
        final ValueSource<ISourceContainer> valueSourceThis = this;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   165
        elements.getConfigureButton().addSelectionListener(new SelectionAdapter() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   166
          @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   167
          public void widgetSelected(SelectionEvent e) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   168
            if (preparedAction != null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   169
              ISourceContainer value = preparedAction.run(elements.getShell());
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   170
              if (value != null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   171
                setCurrentValue(value);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   172
              }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   173
              updater.reportChanged(valueSourceThis);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   174
              updater.update();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   175
              updateAction();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   176
            }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   177
          }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   178
        });
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   179
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   180
      public void update(Updater updater) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   181
        if (getValue() != null && !getValue().getType().equals(selectedTypeValue.getValue())) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   182
          setCurrentValue(null);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   183
          updater.reportChanged(this);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   184
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   185
        updateAction();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   186
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   187
      private void updateAction() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   188
        preparedAction = SourceNameMapperContainerDialog.prepareConfigureAction(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   189
            selectedTypeValue.getValue(), getValue(), director);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   190
        elements.getConfigureButton().setEnabled(preparedAction != null);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   191
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   192
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   193
    updater.addConsumer(containerFactoryButtonValue, selectedTypeValue);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   194
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   195
    // Represents printer that shows type and name of the created container.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   196
    ValueConsumer showContainerTypeValue = new ValueConsumer() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   197
      public void update(Updater updater) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   198
        ISourceContainer container = containerFactoryButtonValue.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   199
        String status;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   200
        Image image;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   201
        String name;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   202
        boolean enabled;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   203
        if (container == null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   204
          status = Messages.SourceNameMapperContainerDialog_NOTHING_CONFIGURED;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   205
          name = ""; //$NON-NLS-1$
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   206
          image = null;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   207
          enabled = false;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   208
        } else {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   209
          status = Messages.SourceNameMapperContainerDialog_CONFIGURED_CONTAINER;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   210
          ISourceContainerType type = container.getType();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   211
          name = container.getName();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   212
          image = DebugUITools.getSourceContainerImage(type.getId());
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   213
          enabled = true;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   214
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   215
        ContainerStatusGroup group = elements.getContainerStatusGroup();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   216
        group.getStatusLabel().setText(status);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   217
        group.getTypeImageLabel().setImage(image);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   218
        group.getContainerNameLabel().setText(name);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   219
        group.setEnabled(enabled);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   220
        group.layout();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   221
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   222
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   223
    updater.addConsumer(showContainerTypeValue, containerFactoryButtonValue);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   224
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   225
    // Represents expression that constructs dialog window result.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   226
    final ValueProcessor<? extends Optional<Result>> resultValue =
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   227
        new ExpressionProcessor<Result>(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   228
            Arrays.<ValueSource<? extends Optional<?>>>asList(prefixValue) ) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   229
          @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   230
          protected Optional<Result> calculateNormal() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   231
            final String prefix = prefixValue.getValue().getNormal();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   232
            final ISourceContainer container = containerFactoryButtonValue.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   233
            if (container == null) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   234
              return createErrorOptional(
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   235
                  new Message(Messages.SourceNameMapperContainerDialog_CONFIGURE_TARGET_CONTAINER,
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   236
                      MessagePriority.BLOCKING_INFO));
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   237
            }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   238
            Result result = new Result() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   239
              public ISourceContainer getResultContainer() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   240
                return container;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   241
              }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   242
              public String getResultPrefix() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   243
                return prefix;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   244
              }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   245
            };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   246
            return createOptional(result);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   247
          }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   248
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   249
    updater.addConsumer(resultValue, prefixValue, containerFactoryButtonValue);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   250
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   251
    // Represents controller that updates state of OK button and error messages.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   252
    OkButtonControl okButtonControl = new OkButtonControl(resultValue, warningSources, elements);
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   253
    updater.addConsumer(okButtonControl, okButtonControl.getDependencies());
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   254
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   255
    return new SourceNameMapperContainerDialogLogic() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   256
      @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   257
      Result getResult() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   258
        Optional<Result> optional = resultValue.getValue();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   259
        if (optional.isNormal()) {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   260
          return optional.getNormal();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   261
        } else {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   262
          // Normally should not be reachable, because UI should have disabled OK button.
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   263
          return null;
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   264
        }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   265
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   266
      @Override
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   267
      void updateAll() {
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   268
        updater.updateAll();
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   269
      }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   270
    };
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   271
  }
8726e95bcbba Initial commit of updated Chrome Java SDK
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   272
}