/*
 * Copyright 2003-2011 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package jetbrains.mps.ide.findusages.view.optionseditor.options;

import jetbrains.mps.project.Project;
import org.jdom.Element;

public class ViewOptions extends BaseOptions {
  private static final String FLAGS = "flags";
  private static final String SHOW_ONE_RESULT = "show_one_result";
  private static final String NEW_TAB = "new_tab";

  public boolean myShowOneResult;
  public boolean myNewTab;

  public ViewOptions() {
    myShowOneResult = true;
    myNewTab = false;
  }

  public ViewOptions(Element element, Project project) {
    read(element, project);
  }

  public ViewOptions(boolean showOneResult, boolean newTab) {
    myShowOneResult = showOneResult;
    myNewTab = newTab;
  }

  @Override
  public ViewOptions clone() {
    return new ViewOptions(myShowOneResult, myNewTab);
  }

  @Override
  public void read(Element element, Project project) {
    Element flagsXML = element.getChild(FLAGS);
    myShowOneResult = Boolean.parseBoolean(flagsXML.getAttribute(SHOW_ONE_RESULT).getValue());
    myNewTab = Boolean.parseBoolean(flagsXML.getAttribute(NEW_TAB).getValue());
  }

  @Override
  public void write(Element element, Project project) {
    Element flagsXML = new Element(FLAGS);
    flagsXML.setAttribute(SHOW_ONE_RESULT, Boolean.toString(myShowOneResult));
    flagsXML.setAttribute(NEW_TAB, Boolean.toString(myNewTab));
    element.addContent(flagsXML);
  }
}
