content: /**
   * Copyright 2020 Alexander Herzog
   *
   * 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 ui.modeleditor.elements;
  
  import javax.swing.Icon;
  
  import language.Language;
  import simulator.editmodel.EditModel;
  import ui.images.Images;
  import ui.infopanel.InfoPanel;
  import ui.modeleditor.ModelSurface;
  import ui.modeleditor.coreelements.ModelElementLogicWithCondition;
  
  /**
   * Diese Station bildet in der Flusssteuerung ein logisches "If" ab.
   * @author Alexander Herzog
   * @see ModelElementLogicElse
   * @see ModelElementLogicElseIf
   * @see ModelElementLogicEndIf
   */
  public class ModelElementLogicIf extends ModelElementLogicWithCondition {
  	/**
  	 * Konstruktor der Klasse
  	 * @param model	Modell zu dem dieses Element gehren soll (kann spter nicht mehr gendert werden)
  	 * @param surface	Zeichenflche zu dem dieses Element gehren soll (kann spter nicht mehr gendert werden)
  	 */
  	public ModelElementLogicIf(EditModel model, ModelSurface surface) {
  		super(model,surface);
  	}
  
  	/**
  	 * Icon, welches im "Element hinzufgen"-Dropdown-Men angezeigt werden soll.
  	 * @return	Icon fr das Dropdown-Men
  	 */
  	@Override
  	public Icon getAddElementIcon() {
  		return Images.MODELEDITOR_ELEMENT_LOGIC_IF.getIcon();
  	}
  
  	/**
  	 * Tooltip fr den "Element hinzufgen"-Dropdown-Men-Eintrag.
  	 * @return Tooltip fr den "Element hinzufgen"-Dropdown-Meneintrag
  	 */
  	@Override
  	public String getToolTip() {
  		return Language.tr("Surface.LogicIf.Tooltip");
  	}
  
  	/**
  	 * Erstellt eine Kopie des Elements
  	 * @param model	Modell zu dem das kopierte Element gehren soll.
  	 * @param surface	Zeichenflche zu der das kopierte Element gehren soll.
  	 * @return	Kopiertes Element
  	 */
  	@Override
  	public ModelElementLogicIf clone(final EditModel model, final ModelSurface surface) {
  		final ModelElementLogicIf element=new ModelElementLogicIf(model,surface);
  		element.copyDataFrom(this);
  		return element;
  	}
  
  	/**
  	 * Name des Elementtyps fr die Anzeige im Kontextmen
  	 * @return	Name des Elementtyps
  	 */
  	@Override
  	public String getContextMenuElementName() {
  		return Language.tr("Surface.LogicIf.Name");
  	}
  
  	/**
  	 * Liefert die Bezeichnung des Typs des Elemente (zur Anzeige in der Element-Box)
  	 * @return	Name des Typs
  	 */
  	@Override
  	public String getTypeName() {
  		return Language.tr("Surface.LogicIf.Name");
  	}
  
  	/**
  	 * Liefert den jeweiligen xml-Element-Namen fr das Modell-Element
  	 * @return	xml-Element-Namen, der diesem Modell-Element zugeordnet werden soll
  	 */
  	@Override
  	public String[] getXMLNodeNames() {
  		return Language.trAll("Surface.LogicIf.XML.Root");
  	}
  
  	@Override
  	public String getHelpPageName() {
  		return "ModelElementLogicIf";
  	}
  
  	/**
  	 * Gibt optional die ID fr einen Infotext oben im zugehrigen Dialog zurck.
  	 * @return	ID fr einen Infotext oben im Dialog (kann <code>null</code> sein)
  	 * @see InfoPanel
  	 */
  	@Override
  	protected String getInfoPanelID() {
  		return InfoPanel.stationLogicIf;
  	}
  }
  