/*******************************************************************************
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*******************************************************************************/
package com.liferay.ide.layouttpl.ui.util;
import com.liferay.ide.layouttpl.core.model.CanAddPortletLayouts;
import com.liferay.ide.layouttpl.core.model.LayoutTplElement;
import com.liferay.ide.layouttpl.core.model.PortletColumnElement;
import com.liferay.ide.layouttpl.core.model.PortletLayoutElement;
/**
* @author Kuo Zhang
*/
public class LayoutTemplatesFactory
{
// *** Layout Templates ***
// Every number means the amount of columns in the corresponding row
public static void add_Layout_1( LayoutTplElement layoutTpl )
{
PortletLayoutElement row = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column = row.getPortletColumns().insert();
column.setWeight( column.getFullWeight().content() );
}
public static void add_Layout_1_2_1( LayoutTplElement layoutTpl )
{
PortletLayoutElement row1 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column11 = row1.getPortletColumns().insert();
int fullWeight = column11.getFullWeight().content();
column11.setWeight( fullWeight );
PortletLayoutElement row2 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column21 = row2.getPortletColumns().insert();
column21.setWeight( fullWeight / 2 );
PortletColumnElement column22 = row2.getPortletColumns().insert();
column22.setWeight( fullWeight / 2 );
PortletLayoutElement row3 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column31 = row3.getPortletColumns().insert();
column31.setWeight( fullWeight );
}
public static void add_Layout_1_2_I( LayoutTplElement layoutTpl )
{
PortletLayoutElement row1 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column11 = row1.getPortletColumns().insert();
column11.setWeight( column11.getFullWeight().content() );
PortletLayoutElement row2 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column21 = row2.getPortletColumns().insert();
PortletColumnElement column22 = row2.getPortletColumns().insert();
if( isBootstrapStyle( layoutTpl ) )
{
column21.setWeight( 4 );
column22.setWeight( 8 );
}
else
{
column21.setWeight( 30 );
column22.setWeight( 70 );
}
}
public static void add_Layout_1_2_II( LayoutTplElement layoutTpl )
{
PortletLayoutElement row1 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column11 = row1.getPortletColumns().insert();
column11.setWeight( column11.getFullWeight().content() );
PortletLayoutElement row2 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column21 = row2.getPortletColumns().insert();
PortletColumnElement column22 = row2.getPortletColumns().insert();
if( isBootstrapStyle( layoutTpl ) )
{
column21.setWeight( 8 );
column22.setWeight( 4 );
}
else
{
column21.setWeight( 70 );
column22.setWeight( 30 );
}
}
public static void add_Layout_2_2( LayoutTplElement layoutTpl )
{
PortletLayoutElement row1 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column11 = row1.getPortletColumns().insert();
PortletColumnElement column12 = row1.getPortletColumns().insert();
PortletLayoutElement row2 = layoutTpl.getPortletLayouts().insert();
PortletColumnElement column21 = row2.getPortletColumns().insert();
PortletColumnElement column22 = row2.getPortletColumns().insert();
if( isBootstrapStyle( layoutTpl ) )
{
column11.setWeight( 8 );
column12.setWeight( 4 );
column21.setWeight( 4 );
column22.setWeight( 8 );
}
else
{
column11.setWeight( 70 );
column12.setWeight( 30 );
column21.setWeight( 30 );
column22.setWeight( 70 );
}
}
public static void add_Layout_2_I( LayoutTplElement layoutTpl )
{
add_Row_2_I( layoutTpl );
}
public static void add_Layout_2_II( LayoutTplElement layoutTpl )
{
add_Row_2_II( layoutTpl );
}
public static void add_Layout_2_III( LayoutTplElement layoutTpl )
{
add_Row_2_III( layoutTpl );
}
public static void add_Layout_3( LayoutTplElement layoutTpl )
{
add_Row_3( layoutTpl );
}
// *** Row Templates ***
public static void add_Row_1( CanAddPortletLayouts element )
{
final PortletLayoutElement row = element.getPortletLayouts().insert();
final PortletColumnElement column = row.getPortletColumns().insert();
column.setWeight( column.getFullWeight().content() );
}
public static void add_Row_2_I( CanAddPortletLayouts element )
{
final PortletLayoutElement row = element.getPortletLayouts().insert();
final PortletColumnElement column1 = row.getPortletColumns().insert();
final PortletColumnElement column2 = row.getPortletColumns().insert();
final int fullWeight = column1.getFullWeight().content();
column1.setWeight( fullWeight / 2 );
column2.setWeight( fullWeight / 2 );
}
public static void add_Row_2_II( CanAddPortletLayouts element )
{
final PortletLayoutElement row = element.getPortletLayouts().insert();
PortletColumnElement column1 = row.getPortletColumns().insert();
PortletColumnElement column2 = row.getPortletColumns().insert();
if( isBootstrapStyle( element ) )
{
column1.setWeight( 4 );
column2.setWeight( 8 );
}
else
{
column1.setWeight( 30 );
column2.setWeight( 70 );
}
}
public static void add_Row_2_III( CanAddPortletLayouts element )
{
PortletLayoutElement row = element.getPortletLayouts().insert();
PortletColumnElement column1 = row.getPortletColumns().insert();
PortletColumnElement column2 = row.getPortletColumns().insert();
if( isBootstrapStyle( element ) )
{
column1.setWeight( 8 );
column2.setWeight( 4 );
}
else
{
column1.setWeight( 70 );
column2.setWeight( 30 );
}
}
public static void add_Row_3( CanAddPortletLayouts element )
{
PortletLayoutElement row = element.getPortletLayouts().insert();
PortletColumnElement column1 = row.getPortletColumns().insert();
PortletColumnElement column2 = row.getPortletColumns().insert();
PortletColumnElement column3 = row.getPortletColumns().insert();
int fullWeight = column1.getFullWeight().content();
column1.setWeight( fullWeight / 3 );
column2.setWeight( fullWeight / 3 );
column3.setWeight( fullWeight / 3 );
}
private static boolean isBootstrapStyle( CanAddPortletLayouts element )
{
return element.nearest( LayoutTplElement.class ).getBootstrapStyle().content();
}
}