<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

	<head>
		<meta name="copyright" content="Copyright &copy; 2014 The Eclipse Foundation. All Rights Reserved." />
		<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
		<meta http-equiv="Content-Style-Type" content="text/css" />

		<title>Capella - In-Flight Entertainment System - FunctionalExchange Passenger Homepage Selection</title>
		<link rel="stylesheet" href="../../scripts/jquery-treeview/jquery.treeview.css" />
  		<script src="../../scripts/jquery-treeview/lib/jquery-1.11.1.js" type="text/javascript"></script>
  		<script src="../../scripts/jquery-treeview/jquery.treeview.js" type="text/javascript"></script>
		<link rel="stylesheet" type="text/css" href="../../css/simpletree.css" />		
		<link title="default" rel="stylesheet" type="text/css" media="screen, projection" href="../../css/content.css"></link>
		<script type="text/javascript">
			if(parent.location.href == self.location.href) {
				window.location.href = 'index.html?e207d8b6c76d494d9519b7f0cac18956';
			}
		</script>
		
		<style>
			body {
				background: white;
				font-family: Arial;
			}
			.treeview {
				background-color: white ;
			}
	
			.treeview ul{ /*CSS for Simple Tree Menu*/
				background-color: white;
				font-size: 12px;
			}
	
			.treeview li{ /*Style for LI elements in general (excludes an LI that contains sub lists)*/
				background-color: white;
			}
		</style>
		
	</head>
	
	<body><div id="content">
<img src="../icon/FunctionalExchange.png" alt="FunctionalExchange" style="float:left; margin-right:10px" /><h1><a href="../In-Flight Entertainment System/e207d8b6c76d494d9519b7f0cac18956.html">Passenger Homepage Selection</a></h1>
<p style="margin-top:3px; margin-bottom:3px"><span class="elementMetaClass">FunctionalExchange</span></p>
<em class="elementPath"><a href="../In-Flight Entertainment System/bd182435e29042ceb99f6dd06e7ae7c7.html">In&#045;Flight Entertainment System</a> > <a href="../In-Flight Entertainment System/8f49452e61f24ba0b944352d1f4c4227.html">In&#045;Flight Entertainment System</a> > <a href="../In-Flight Entertainment System/9a0668cfdb264ee79339c1d8658fa112.html">Physical Architecture</a> > <a href="../In-Flight Entertainment System/75b9cc1b926940d98528a77115b3a81d.html">Physical Functions</a> > <a href="../In-Flight Entertainment System/0f09b41e1e384d34abb0ba31a0eedd58.html">Root Physical Function</a> > <a href="../In-Flight Entertainment System/e207d8b6c76d494d9519b7f0cac18956.html">Passenger Homepage Selection</a></em>

<p>
No description.
</p>












<h2> Source </h2>
<ul id="sourcePortTreeView" class="treeview"><li><img src="../icon/FunctionOutputPort.gif" alt="FunctionOutputPort" /> <a href="../In-Flight Entertainment System/6a30f4e819774e8c84e48406ad336c78.html">FOP 2</a><ul class="generatedList"><li><img src="../icon/ActorPhysicalFunction.gif" alt="PhysicalFunction" /> <a href="../In-Flight Entertainment System/a3605148c80e46359790f068451a1b4a.html">Select Passenger Service</a></li></ul></li></ul>
<h2> Target </h2>
<ul id="targetPortTreeView" class="treeview"><li><img src="../icon/FunctionInputPort.gif" alt="FunctionInputPort" /> <a href="../In-Flight Entertainment System/9390455fc29b490f8628b51c2c901faa.html">FIP 1</a><ul class="generatedList"><li><img src="../icon/PhysicalFunction.gif" alt="PhysicalFunction" /> <a href="../In-Flight Entertainment System/9d76fefa2f8942728b1d785d05601ce6.html">Capture Passenger Service Selection</a></li></ul></li></ul>




	<h2> Categories </h2>
	<ul class="generatedList"><li><img src="../icon/ExchangeCategory.gif" alt="ExchangeCategory" /> <a href="../In-Flight Entertainment System/a8e67c5ec76a4a1982adaa08fed7c860.html">Passenger Service Selection</a></li></ul>

<h2>Realized Elements</h2>

<ul class="generatedList"><li><img src="../icon/FunctionalExchange.gif" alt="FunctionalExchange" /> <a href="../In-Flight Entertainment System/4d2e526a2166443096e493e87b447b02.html">Passenger Homepage Selection</a></li></ul>









<h2>Diagrams displaying "Passenger Homepage Selection"</h2>
<ul>
<li>
<a href="../In-Flight Entertainment System/cf7dca25225043399501eaf3557a644c.html#_THK9ALI7EeSu9-F8hTsjMA">&#091;PDFB&#093; &#091;CTX&#093; Manage Passenger Services Lifecycle</a> 
</li>
</ul>





 </div>	<script type="text/javascript">
		$("#sourcePortTreeView").treeview({ collapsed: false, animated: "fast", unique: false, control: "#treecontrol"});
		$("#targetPortTreeView").treeview({ collapsed: false, animated: "fast", unique: false, control: "#treecontrol"});
	</script>
   </body>
</html>