Android Open Source - sdl_tester_android Submenu Button






From Project

Back to project page sdl_tester_android.

License

The source code is released under:

Copyright (c) 2014, Ford Motor Company All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are m...

If you think the Android project sdl_tester_android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.livio.sdl.menu;
//  w  ww.j  ava  2s .c  om
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Represents a submenu button that can be clicked on the SDL-connected head-unit.  A submenu
 * contains all the fields contained in the MenuItem parent class, as well as maintaining a list
 * of children commands.
 *
 * @author Mike Burke
 *
 */
public class SubmenuButton extends MenuItem {

  private List<MenuItem> children;
  
  public SubmenuButton(SubmenuButton copy){
    super(copy.getName(), copy.getId(), true);
    copyChildren(copy.getChildren());
  }
  
  public SubmenuButton(String name, int id) {
    super(name, id, true);
  }
  
  /**
   * Creates a copy of the children to ensure there are no leaked references to the
   * children of the object we're copying.
   * 
   * @param children
   */
  private void copyChildren(List<MenuItem> children){
    if(children == null || children.size() <= 0){
      return;
    }
    
    if(this.children == null){
      this.children = new ArrayList<MenuItem>(children.size());
    }
    
    for(MenuItem child : children){
      if(child.isMenu()){
        this.children.add(new SubmenuButton((SubmenuButton) child));
      }
      else{
        this.children.add(new CommandButton((CommandButton) child));
      }
    }
  }
  
  /**
   * Returns a copy of the list of all children associated with this menu item.  If there
   * are no children associated with this menu item, this method will return an empty list.
   * 
   * @return A copy of the list of children
   */
  public List<MenuItem> getChildren(){
    if(children == null || children.size() <= 0){
      return Collections.emptyList();
    }
    
    return new ArrayList<MenuItem>(children);
  }
  
  /**
   * Adds a child to this submenu object.
   * 
   * @param item The item to add
   */
  public void addChild(MenuItem item){
    if(children == null){
      children = new ArrayList<MenuItem>();
    }
    
    children.add(item);
  }
  
  /**
   * Removes a child from this submenu object.
   * 
   * @param childId The id of the child to remove
   */
  public void removeChild(int childId){
    if(children == null || children.size() <= 0){
      return;
    }
    
    for(MenuItem child : children){
      if(childId == child.getId()){
        children.remove(child);
        return;
      }
    }
  }
  
  /**
   * Removes all children from this submenu object.
   */
  public void removeAllChildren(){
    if(children == null || children.size() <= 0){
      return;
    }
    
    children.clear();
  }

}




Java Source Code List

com.livio.sdl.IdGenerator.java
com.livio.sdl.IpAddress.java
com.livio.sdl.SdlConstants.java
com.livio.sdl.SdlImageItem.java
com.livio.sdl.SdlLogMessage.java
com.livio.sdl.SdlRequestFactory.java
com.livio.sdl.SdlResponseFactory.java
com.livio.sdl.SdlResponseTracker.java
com.livio.sdl.SdlService.java
com.livio.sdl.adapters.SdlImageAdapter.java
com.livio.sdl.adapters.SdlMessageAdapter.java
com.livio.sdl.dialogs.BaseAlertDialog.java
com.livio.sdl.dialogs.BaseImageListDialog.java
com.livio.sdl.dialogs.BaseMultipleListViewDialog.java
com.livio.sdl.dialogs.BaseOkCancelDialog.java
com.livio.sdl.dialogs.BaseSingleListViewDialog.java
com.livio.sdl.dialogs.ImageListDialog.java
com.livio.sdl.dialogs.IndeterminateProgressDialog.java
com.livio.sdl.dialogs.JsonFlipperDialog.java
com.livio.sdl.dialogs.ListViewDialog.java
com.livio.sdl.dialogs.MultipleListViewDialog.java
com.livio.sdl.dialogs.SingleJsonDialog.java
com.livio.sdl.dialogs.TextViewAlertDialog.java
com.livio.sdl.dialogs.TextViewOkCancelDialog.java
com.livio.sdl.enums.EnumClickListener.java
com.livio.sdl.enums.EnumComparator.java
com.livio.sdl.enums.SdlButton.java
com.livio.sdl.enums.SdlCommand.java
com.livio.sdl.enums.SdlImageType.java
com.livio.sdl.enums.SdlInteractionMode.java
com.livio.sdl.enums.SdlLanguage.java
com.livio.sdl.enums.SdlSpeechCapability.java
com.livio.sdl.enums.SdlSystemAction.java
com.livio.sdl.enums.SdlTextAlignment.java
com.livio.sdl.enums.SdlTransportType.java
com.livio.sdl.enums.SdlUpdateMode.java
com.livio.sdl.enums.SdlVehicleData.java
com.livio.sdl.menu.CommandButton.java
com.livio.sdl.menu.MenuItem.java
com.livio.sdl.menu.MenuManager.java
com.livio.sdl.menu.SubmenuButton.java
com.livio.sdl.utils.AndroidUtils.java
com.livio.sdl.utils.ApplicationPreferences.java
com.livio.sdl.utils.Counter.java
com.livio.sdl.utils.DownCounter.java
com.livio.sdl.utils.MathUtils.java
com.livio.sdl.utils.SdlUtils.java
com.livio.sdl.utils.StringUtils.java
com.livio.sdl.utils.Timeout.java
com.livio.sdl.utils.UpCounter.java
com.livio.sdl.utils.WifiUtils.java
com.livio.sdl.viewhelpers.MinMaxInputFilter.java
com.livio.sdl.viewhelpers.SeekBarCalculator.java
com.livio.sdltester.HelpActivity.java
com.livio.sdltester.LivioSdlTesterPreferences.java
com.livio.sdltester.MainActivity.java
com.livio.sdltester.SdlTesterImageResource.java
com.livio.sdltester.dialogs.AddCommandDialog.java
com.livio.sdltester.dialogs.AddSubMenuDialog.java
com.livio.sdltester.dialogs.ButtonSubscriptionDialog.java
com.livio.sdltester.dialogs.ButtonUnsubscriptionDialog.java
com.livio.sdltester.dialogs.ChangeRegistrationDialog.java
com.livio.sdltester.dialogs.ChoiceItemDialog.java
com.livio.sdltester.dialogs.CreateInteractionChoiceSetDialog.java
com.livio.sdltester.dialogs.DeleteCommandDialog.java
com.livio.sdltester.dialogs.DeleteFileDialog.java
com.livio.sdltester.dialogs.DeleteInteractionDialog.java
com.livio.sdltester.dialogs.DeleteSubmenuDialog.java
com.livio.sdltester.dialogs.GetDtcsDialog.java
com.livio.sdltester.dialogs.PerformInteractionDialog.java
com.livio.sdltester.dialogs.PutFileDialog.java
com.livio.sdltester.dialogs.ReadDidsDialog.java
com.livio.sdltester.dialogs.ScrollableMessageDialog.java
com.livio.sdltester.dialogs.SdlAlertDialog.java
com.livio.sdltester.dialogs.SdlConnectionDialog.java
com.livio.sdltester.dialogs.SetAppIconDialog.java
com.livio.sdltester.dialogs.SetMediaClockTimerDialog.java
com.livio.sdltester.dialogs.ShowDialog.java
com.livio.sdltester.dialogs.SliderDialog.java
com.livio.sdltester.dialogs.SoftButtonItemDialog.java
com.livio.sdltester.dialogs.SoftButtonListDialog.java
com.livio.sdltester.dialogs.SpeakDialog.java