view src/main/webapp/merge/referenceMerge.xhtml @ 85:fd7beb701724

working on "merge reference" feature.
author casties
date Fri, 30 Sep 2016 14:30:33 +0200
parents
children 545e47659e1f
line wrap: on
line source


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich">

<body>
	<ui:composition template="/templates/privateTemplate.xhtml">

		<ui:define name="privateContent">
			
			<div id="pageTitle">
				<h:outputText value="Join References" />
			</div>

            <!-- TODO: fix this! -->
            <script type="text/javascript" src="../imageServer/resources/js/diva4ismi.js"></script>
			
			<h:panelGrid rendered="#{Session.user != null}"
				styleClass="mainPanel" columns="1">
			
				

				<h:panelGrid columns="2" styleClass="createPanel"
					columnClasses="createPanelFirstColumn" id="loadingPanel">

					<h:outputText value="Load Entities" />

					<h:panelGrid columns="4">

						<h:outputText value="Source Biblio ID" 
							styleClass="textBack"/>
						<h:inputText value="#{Session.referenceMerge.firstId}" />
						<a4j:commandButton value="Load"
							actionListener="#{Session.referenceMerge.loadFirstEntity}"
							render="loadingPanel,mergingPanel" />
						<h:column>
							<h:outputText
								value="#{Session.referenceMerge.firstEntity.objectClass}= #{Session.referenceMerge.firstEntity.ownValue} [#{Session.referenceMerge.firstEntity.id}]"
								rendered="#{!empty Session.referenceMerge.firstEntity}" 
								styleClass="textBack"/>
						</h:column>
						
                        <h:outputText/>
                        <h:outputText/>
                        <h:outputText/>
                        <h:column rendered="#{Session.referenceMerge.firstBibId != null}">
                          <script>showBibliographyEntryFormatted("#{Session.referenceMerge.firstBibId}", null, "#bibl-entry-1")</script>
                          <span class="textBack" id="bibl-entry-1">(loading reference...)</span>
                        </h:column>
                        <h:outputText rendered="#{Session.referenceMerge.firstBibId == null}"/>
                        
						<h:outputText value="Target Biblio ID" 
							styleClass="textBack"/>
						<h:inputText value="#{Session.referenceMerge.secondId}" />
						<a4j:commandButton value="Load"
							actionListener="#{Session.referenceMerge.loadSecondEntity}"
							render="loadingPanel,mergingPanel" />
						<h:column>
							<h:outputText
								value="#{Session.referenceMerge.secondEntity.objectClass}= #{Session.referenceMerge.secondEntity.ownValue} [#{Session.referenceMerge.secondEntity.id}]"
								rendered="#{Session.referenceMerge.secondEntity != null}"
								styleClass="textBack"/>
						</h:column>

                        <h:outputText/>
                        <h:outputText/>
                        <h:outputText/>
                        <h:column rendered="#{Session.referenceMerge.secondBibId != null}">
                          <script>showBibliographyEntryFormatted("#{Session.referenceMerge.secondBibId}", null, "#bibl-entry-2")</script>
                          <span class="textBack" id="bibl-entry-2">(loading reference...)</span>
                        </h:column>
                        <h:outputText rendered="#{Session.referenceMerge.secondBibId == null}"/>
                        
					</h:panelGrid>

				</h:panelGrid>

				<h:panelGrid columns="1" id="mergingPanel">

					<h:outputText value="Merge Mapping"
						rendered="#{Session.referenceMerge.entitiesLoaded}"
						styleClass="titlePanel"/>

					<h:panelGrid columns="3" styleClass="createPanel"
						columnClasses="createPanelFirstColumn,createPanelColumn02,createPanelColumn02"
						rendered="#{Session.referenceMerge.entitiesLoaded}">


						<h:outputText value="Attributes" />
						<rich:dataTable var="attName"
							value="#{Session.referenceMerge.attLabels}"
							rendered="#{!empty Session.referenceMerge.attLabels}">
							<h:column>
								<f:facet name="header">
									<h:outputText value="Attribute Name" />
								</f:facet>
								<h:outputText value="#{attName}" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="Value First Entity" />
								</f:facet>
								<h:outputText
									value="#{Session.referenceMerge.firstAttMap[attName]}" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="Value Second Entity" />
								</f:facet>
								<h:outputText
									value="#{Session.referenceMerge.secondAttMap[attName]}" />
							</h:column>
							<h:column style="width:300px;">
								<f:facet name="header">
									<h:outputText value="Select Value" />
								</f:facet>
								<h:selectOneRadio
									value="#{Session.referenceMerge.selectedAtts[attName]}">
									<f:selectItems value="#{Session.referenceMerge.attSelectItems}" />
								</h:selectOneRadio>
							</h:column>
						</rich:dataTable>
						<h:outputText />

						<h:outputText value="Source Relations" />

						<h:panelGrid columns="1">
							<rich:dataTable var="srcRelation"
								rendered="#{!empty Session.referenceMerge.firstEntity.sourceRelations}"
								value="#{Session.referenceMerge.firstEntity.sourceRelations}">

								<h:column>
									<f:facet name="header">
										<h:outputText value="Relation Name" />
									</f:facet>
									<h:outputText value="#{srcRelation.ownValue}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="linked to this" />
									</f:facet>
									<h:outputText
										value="#{srcRelation.target.ownValue} [#{srcRelation.target.objectClass}-#{srcRelation.targetId}]" />
								</h:column>

								<h:column>
									<h:selectOneRadio
										value="#{Session.referenceMerge.selectedFirstSrcRelations[srcRelation.id]}">
										<f:selectItems value="#{Session.referenceMerge.relSelectItems}" />
									</h:selectOneRadio>
								</h:column>

							</rich:dataTable>

							<h:outputText
								value="the first entity does not have source relations"
								rendered="#{empty Session.referenceMerge.firstEntity.sourceRelations}" />
						</h:panelGrid>

						<h:panelGrid columns="1">

							<rich:dataTable var="srcRelation"
								rendered="#{!empty Session.referenceMerge.secondEntity.sourceRelations}"
								value="#{Session.referenceMerge.secondEntity.sourceRelations}">
								<h:column>
									<f:facet name="header">
										<h:outputText value="Relation Name" />
									</f:facet>
									<h:outputText value="#{srcRelation.ownValue}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="linked to this" />
									</f:facet>
									<h:outputText
										value="#{srcRelation.target.ownValue} [#{srcRelation.target.objectClass}-#{srcRelation.targetId}]" />
								</h:column>
								<h:column>
									<h:selectOneRadio
										value="#{Session.referenceMerge.selectedSecondSrcRelations[srcRelation.id]}">
										<f:selectItems value="#{Session.referenceMerge.relSelectItems}" />
									</h:selectOneRadio>
								</h:column>
							</rich:dataTable>
							
							<h:outputText
								value="The second entity does not have source relations"
								rendered="#{empty Session.referenceMerge.secondEntity.sourceRelations}" />

						</h:panelGrid>


						<h:outputText value="Target Relations" />

						<h:panelGrid columns="1">
							<rich:dataTable var="tarRelation"
								rendered="#{!empty Session.referenceMerge.firstEntity.targetRelations}"
								value="#{Session.referenceMerge.firstEntity.targetRelations}"
								style="width:60%;">

								<h:column>
									<f:facet name="header">
										<h:outputText value="linked from this" />
									</f:facet>
									<h:outputText
										value="#{tarRelation.source.ownValue} [#{tarRelation.source.objectClass}-#{tarRelation.sourceId}]" />
								</h:column>

								<h:column>
									<f:facet name="header">
										<h:outputText value="Relation Name" />
									</f:facet>
									<h:outputText value="#{tarRelation.ownValue}" />
								</h:column>

								<h:column>
									<h:selectOneRadio
										value="#{Session.referenceMerge.selectedFirstTarRelations[tarRelation.id]}">
										<f:selectItems value="#{Session.referenceMerge.relSelectItems}" />
									</h:selectOneRadio>
								</h:column>
							</rich:dataTable>
							<h:outputText
								value="the first entity does not have target relations."
								rendered="#{empty Session.referenceMerge.firstEntity.targetRelations}" />
						</h:panelGrid>

						<h:panelGrid columns="1">

							<rich:dataTable var="tarRelation"
								rendered="#{!empty Session.referenceMerge.secondEntity.targetRelations}"
								value="#{Session.referenceMerge.secondEntity.targetRelations}"
								style="width:60%;">

								<h:column>
									<f:facet name="header">
										<h:outputText value="linked from this" />
									</f:facet>
									<h:outputText
										value="#{tarRelation.source.ownValue} [#{tarRelation.source.objectClass}-#{tarRelation.sourceId}]" />
								</h:column>

								<h:column>
									<f:facet name="header">
										<h:outputText value="Relation Name" />
									</f:facet>
									<h:outputText value="#{tarRelation.ownValue}" />
								</h:column>

								<h:column>
									<h:selectOneRadio
										value="#{Session.referenceMerge.selectedSecondTarRelations[tarRelation.id]}">
										<f:selectItems value="#{Session.referenceMerge.relSelectItems}" />
									</h:selectOneRadio>
								</h:column>

							</rich:dataTable>

							<h:outputText
								value="The second entity does not have target relations"
								rendered="#{empty Session.referenceMerge.secondEntity.targetRelations}" />

						</h:panelGrid>
					</h:panelGrid>

					<h:panelGrid columns="2" styleClass="controlPanel"
						rendered="#{Session.referenceMerge.entitiesLoaded}">

						<a4j:commandButton value="Preview"
							actionListener="#{Session.referenceMerge.preview}"
							rendered="#{Session.referenceMerge.entitiesLoaded}"
							render="mergingPanel" />

						<a4j:commandButton value="Execute Merge"
							actionListener="#{Session.referenceMerge.listenerExecuteMerge }"
							rendered="#{Session.referenceMerge.entitiesLoaded}"
							onclick="#{ApplicationBean1.JSConfirmationMerge}"
							render="mergingPanel" />

					</h:panelGrid>


					<h:outputText value="Entity Preview"
						rendered="#{!empty Session.referenceMerge.entResult}"
						styleClass="titlePanel"/>
					<h:panelGrid columns="2" styleClass="createPanel"
						columnClasses="createPanelFirstColumn"
						rendered="#{!empty Session.referenceMerge.entResult}">


						<h:outputText value="Attributes" />
						<rich:dataTable
							value="#{Session.referenceMerge.entResult.attributes}"
							var="attribute" border="1">
							<h:column>
								<f:facet name="header">
									<h:outputText value="Name" />
								</f:facet>
								<h:outputText value="#{attribute.objectClass}" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="Value" />
								</f:facet>
								<h:outputText value="#{attribute.ownValue}" />
							</h:column>
						</rich:dataTable>


						<h:outputText value="Source Relations" />
						<rich:dataTable
							value="#{Session.referenceMerge.entResult.sourceRelations}"
							var="srcRelation" border="1">

							<h:column>
								<f:facet name="header">
									<h:outputText value="linked from this" />
								</f:facet>
								<h:outputText value="#{'x'}" />
							</h:column>

							<h:column>
								<f:facet name="header">
									<h:outputText value="Relation Name" />
								</f:facet>
								<h:outputText value="#{srcRelation.ownValue}" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="linked to this" />
								</f:facet>
								<h:outputText
									value="#{srcRelation.target.ownValue} [#{srcRelation.target.objectClass}]" />
							</h:column>
						</rich:dataTable>

						<h:outputText value="Target Relations" />
						<rich:dataTable
							value="#{Session.referenceMerge.entResult.targetRelations}"
							var="tarRelation" border="1">
							<h:column>
								<f:facet name="header">
									<h:outputText value="linked from this" />
								</f:facet>
								<h:outputText
									value="#{tarRelation.source.ownValue} [#{tarRelation.source.objectClass}]" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="Relation Name" />
								</f:facet>
								<h:outputText value="#{tarRelation.ownValue}" />
							</h:column>
							<h:column>
								<f:facet name="header">
									<h:outputText value="linked to this" />
								</f:facet>
								<h:outputText value="#{'x'}" />
							</h:column>
						</rich:dataTable>


					</h:panelGrid>



				</h:panelGrid>



			</h:panelGrid>
		</ui:define>
	</ui:composition>
</body>
</html>