added WebWidgets

This commit is contained in:
Peter Schojer 2008-05-12 13:12:39 +00:00
parent 9661e08347
commit 6c80fe82c1
577 changed files with 34601 additions and 10 deletions

View File

@ -37,7 +37,7 @@
// Categories
//
//
// Values are 32 bit values laid out as follows:
// Values are 32 bit values layed out as follows:
//
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
@ -77,7 +77,7 @@
//
// MessageText:
//
// Fatal
// Fatal
//
#define POCO_CTG_FATAL 0x00000001L
@ -86,7 +86,7 @@
//
// MessageText:
//
// Critical
// Critical
//
#define POCO_CTG_CRITICAL 0x00000002L
@ -95,7 +95,7 @@
//
// MessageText:
//
// Error
// Error
//
#define POCO_CTG_ERROR 0x00000003L
@ -104,7 +104,7 @@
//
// MessageText:
//
// Warning
// Warning
//
#define POCO_CTG_WARNING 0x00000004L
@ -113,7 +113,7 @@
//
// MessageText:
//
// Notice
// Notice
//
#define POCO_CTG_NOTICE 0x00000005L
@ -122,7 +122,7 @@
//
// MessageText:
//
// Information
// Information
//
#define POCO_CTG_INFORMATION 0x00000006L
@ -131,7 +131,7 @@
//
// MessageText:
//
// Debug
// Debug
//
#define POCO_CTG_DEBUG 0x00000007L
@ -140,7 +140,7 @@
//
// MessageText:
//
// Trace
// Trace
//
#define POCO_CTG_TRACE 0x00000008L
@ -152,7 +152,7 @@
//
// MessageText:
//
// %1
// %1
//
#define POCO_MSG_LOG 0x00001000L

View File

@ -0,0 +1,30 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtJS", "ExtJS_VS71.vcproj", "{19fa461f-7419-4653-8a6b-b93002f7db14}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_VS71.vcproj", "{ab43a995-70fa-4297-bd01-6c88938aa86d}"
ProjectSection(ProjectDependencies) = postProject
{19fa461f-7419-4653-8a6b-b93002f7db14} = {19fa461f-7419-4653-8a6b-b93002f7db14}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
debug_shared = debug_shared
release_shared = release_shared
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{19fa461f-7419-4653-8a6b-b93002f7db14}.debug_shared.ActiveCfg = debug_shared|Win32
{19fa461f-7419-4653-8a6b-b93002f7db14}.debug_shared.Build.0 = debug_shared|Win32
{19fa461f-7419-4653-8a6b-b93002f7db14}.release_shared.ActiveCfg = release_shared|Win32
{19fa461f-7419-4653-8a6b-b93002f7db14}.release_shared.Build.0 = release_shared|Win32
{ab43a995-70fa-4297-bd01-6c88938aa86d}.debug_shared.ActiveCfg = debug_shared|Win32
{ab43a995-70fa-4297-bd01-6c88938aa86d}.debug_shared.Build.0 = debug_shared|Win32
{ab43a995-70fa-4297-bd01-6c88938aa86d}.release_shared.ActiveCfg = release_shared|Win32
{ab43a995-70fa-4297-bd01-6c88938aa86d}.release_shared.Build.0 = release_shared|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="ExtJS"
ProjectGUID="{19fa461f-7419-4653-8a6b-b93002f7db14}"
RootNamespace="ExtJS"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_DLL;ExtJS_EXPORTS"
StringPooling="TRUE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundationd.lib"
OutputFile="..\bin\PocoExtJSd.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\lib"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\bin\PocoExtJSd.pdb"
SubSystem="1"
OptimizeForWindows98="1"
ImportLibrary="..\lib\PocoExtJSd.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="3"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_DLL;ExtJS_EXPORTS"
GeneratePreprocessedFile="0"
KeepComments="FALSE"
StringPooling="TRUE"
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundation.lib"
OutputFile="..\bin\PocoExtJS.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\lib"
GenerateDebugInformation="FALSE"
ProgramDatabaseFile=""
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
OptimizeForWindows98="1"
ImportLibrary="..\lib\PocoExtJS.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="ExtJS"
Filter="">
<Filter
Name="Header Files"
Filter="">
<File
RelativePath=".\include\Poco\ExtJS\ExtJS.h">
</File>
</Filter>
<Filter
Name="Source Files"
Filter="">
</Filter>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,28 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtJS", "ExtJS_VS80.vcproj", "{19FA461F-7419-4653-8A6B-B93002F7DB14}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_VS80.vcproj", "{AB43A995-70FA-4297-BD01-6C88938AA86D}"
ProjectSection(ProjectDependencies) = postProject
{19FA461F-7419-4653-8A6B-B93002F7DB14} = {19FA461F-7419-4653-8A6B-B93002F7DB14}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
debug_shared|Win32 = debug_shared|Win32
release_shared|Win32 = release_shared|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{19FA461F-7419-4653-8A6B-B93002F7DB14}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
{19FA461F-7419-4653-8A6B-B93002F7DB14}.debug_shared|Win32.Build.0 = debug_shared|Win32
{19FA461F-7419-4653-8A6B-B93002F7DB14}.release_shared|Win32.ActiveCfg = release_shared|Win32
{19FA461F-7419-4653-8A6B-B93002F7DB14}.release_shared|Win32.Build.0 = release_shared|Win32
{AB43A995-70FA-4297-BD01-6C88938AA86D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
{AB43A995-70FA-4297-BD01-6C88938AA86D}.debug_shared|Win32.Build.0 = debug_shared|Win32
{AB43A995-70FA-4297-BD01-6C88938AA86D}.release_shared|Win32.ActiveCfg = release_shared|Win32
{AB43A995-70FA-4297-BD01-6C88938AA86D}.release_shared|Win32.Build.0 = release_shared|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,501 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="ExtJS"
ProjectGUID="{19fa461f-7419-4653-8a6b-b93002f7db14}"
RootNamespace="ExtJS"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\WebWidgets\include;..\..\Net\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_DLL;ExtJS_EXPORTS"
StringPooling="true"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundationd.lib"
OutputFile="..\..\bin\PocoExtJSd.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib"
GenerateDebugInformation="true"
ProgramDatabaseFile="..\..\bin\PocoExtJSd.pdb"
SubSystem="1"
OptimizeForWindows98="1"
ImportLibrary="..\..\lib\PocoExtJSd.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\WebWidgets\include;..\..\Net\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_DLL;ExtJS_EXPORTS"
GeneratePreprocessedFile="0"
KeepComments="false"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="0"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundation.lib"
OutputFile="..\..\bin\PocoExtJS.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\lib"
GenerateDebugInformation="false"
ProgramDatabaseFile=""
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
OptimizeForWindows98="1"
ImportLibrary="..\..\lib\PocoExtJS.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Core"
>
<Filter
Name="Header Files"
>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\AbstractTableCellHandler.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\CellInitializer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\CellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\CheckButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\CollapsibleRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ComboBoxCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\DateFieldCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ExtJS.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\FormRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\FrameRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\GridLayoutRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\HorizontalLayoutRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\HTMLRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ImageButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ImageRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\LabelRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\LayoutRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ListBoxCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\NumberFieldCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\PageRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\PanelRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\PasswordFieldCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ProgressIndicatorRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\RadioButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\SubmitButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TableCellHandler.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TableCellHandlerFactory.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TableRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TabViewRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TextEditCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TextFieldCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\TimeFieldCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\ToggleButtonCellRenderer.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\Utility.h"
>
</File>
<File
RelativePath=".\include\Poco\WebWidgets\ExtJS\VerticalLayoutRenderer.h"
>
</File>
</Filter>
<Filter
Name="Source Files"
>
<File
RelativePath=".\src\AbstractTableCellHandler.cpp"
>
</File>
<File
RelativePath=".\src\ButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\CellInitializer.cpp"
>
</File>
<File
RelativePath=".\src\CellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\CheckButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\CollapsibleRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ComboBoxCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\DateFieldCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\FormRenderer.cpp"
>
</File>
<File
RelativePath=".\src\FrameRenderer.cpp"
>
</File>
<File
RelativePath=".\src\GridLayoutRenderer.cpp"
>
</File>
<File
RelativePath=".\src\HorizontalLayoutRenderer.cpp"
>
</File>
<File
RelativePath=".\src\HTMLRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ImageButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ImageRenderer.cpp"
>
</File>
<File
RelativePath=".\src\LabelRenderer.cpp"
>
</File>
<File
RelativePath=".\src\LayoutRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ListBoxCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\NumberFieldCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\PageRenderer.cpp"
>
</File>
<File
RelativePath=".\src\PanelRenderer.cpp"
>
</File>
<File
RelativePath=".\src\PasswordFieldCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ProgressIndicatorRenderer.cpp"
>
</File>
<File
RelativePath=".\src\RadioButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\SubmitButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\TableCellHandlerFactory.cpp"
>
</File>
<File
RelativePath=".\src\TableRenderer.cpp"
>
</File>
<File
RelativePath=".\src\TabViewRenderer.cpp"
>
</File>
<File
RelativePath=".\src\TextEditCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\TextFieldCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\TimeFieldCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\ToggleButtonCellRenderer.cpp"
>
</File>
<File
RelativePath=".\src\Utility.cpp"
>
</File>
<File
RelativePath=".\src\VerticalLayoutRenderer.cpp"
>
</File>
</Filter>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

17
WebWidgets/ExtJS/Makefile Normal file
View File

@ -0,0 +1,17 @@
#
# Makefile
#
# $Id: //poco/Main/template/library.make#3 $
#
# Makefile for Poco ExtJS
#
include $(POCO_BASE)/build/rules/global
objects = <SourceFilesHere>
target = PocoExtJS
target_version = $(LIBVERSION)
target_libs = PocoFoundation
include $(POCO_BASE)/build/rules/lib

View File

@ -0,0 +1,112 @@
//
// AbstractTableCellHandler.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/AbstractTableCellHandler.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: AbstractTableCellHandler
//
// Definition of the AbstractTableCellHandler class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_AbstractTableCellHandler_INCLUDED
#define ExtJS_AbstractTableCellHandler_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/RefCountedObject.h"
#include "Poco/AutoPtr.h"
#include <ostream>
namespace Poco {
namespace WebWidgets {
class Cell;
namespace ExtJS {
class ExtJS_API AbstractTableCellHandler: public RefCountedObject
/// AbstractTableCellHandler
{
public:
typedef AutoPtr<AbstractTableCellHandler> Ptr;
AbstractTableCellHandler(bool editor, bool renderer);
/// Creates an AbstractTableCellHandler
virtual ~AbstractTableCellHandler();
/// Destroys an AbstractTableCellHandler
virtual void addFixed(const std::string& name, const std::string& fixedContent) = 0;
/// Adds a variable with a given fixed string content. The content will not be wrapped
/// with ' ' but will be written as is
virtual void writeData(const void* pObj, std::ostream& out) = 0;
/// Writes the content of the table used to dynamically
/// initialize Table Columns
virtual void writeDynamicData(std::ostream& out) = 0;
/// Writes the Javascript callback function
virtual AbstractTableCellHandler* clone() const = 0;
/// Creates a deep-copy of the object
virtual void init(const Cell* pCell) = 0;
/// Initializes the TableCellHandler according to the cell
bool useEditor() const;
/// Returns true if we need to use the editor when the class is editable
bool useRenderer() const;
/// Returns true if we need to use a custom renderer to display the object
private:
bool _editor;
bool _renderer;
};
inline bool AbstractTableCellHandler::useEditor() const
{
return _editor;
}
inline bool AbstractTableCellHandler::useRenderer() const
{
return _renderer;
}
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_AbstractTableCellHandler_INCLUDED

View File

@ -0,0 +1,84 @@
//
// ButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ButtonCellRenderer.h#5 $
//
// Library: ExtJS
// Package: Core
// Module: ButtonCellRenderer
//
// Definition of the ButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ButtonCellRenderer_INCLUDED
#define ExtJS_ButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/CellRenderer.h"
namespace Poco {
namespace WebWidgets {
class ButtonCell;
namespace ExtJS {
class ExtJS_API ButtonCellRenderer: public CellRenderer
/// ButtonCellRenderer renders a button
{
public:
ButtonCellRenderer();
/// Creates the ButtonCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
void renderCell(const Cell* pCell, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr);
/// writes ConfigData, is a simple string
static void renderProperties(const ButtonCell* pCell, const std::string& content, bool writeId, bool submitButton, std::ostream& ostr, bool showText = true);
/// Renders button properties
static void renderButton(const ButtonCell* pCell, const std::string& content, bool writeId, bool submitButton, std::ostream& ostr, bool showText = true);
/// Renders button properties
protected:
virtual ~ButtonCellRenderer();
/// Destroys the ButtonCellRenderer.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,86 @@
//
// CellInitializer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/CellInitializer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: CellInitializer
//
// Definition of the CellInitializer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_CellInitializer_INCLUDED
#define ExtJS_CellInitializer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
namespace Poco {
namespace WebWidgets {
class Cell;
class ToggleButtonCell;
class CheckButtonCell;
class TextEditCell;
class TextFieldCell;
class ComboBoxCell;
class ButtonCell;
namespace ExtJS {
class AbstractTableCellHandler;
void ExtJS_API cellInitializer(const Cell* pCell, AbstractTableCellHandler* pHandler);
/// Generic Initializer for Cells
void ExtJS_API cellInitializer(const ToggleButtonCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the ToggleButtonCell
void ExtJS_API cellInitializer(const CheckButtonCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the CheckButtonCell
void ExtJS_API cellInitializer(const TextEditCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the TextEditCell
void ExtJS_API cellInitializer(const TextFieldCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the TextFieldCell
void ExtJS_API cellInitializer(const ButtonCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the ComboBoxCell
void ExtJS_API cellInitializer(const ComboBoxCell* pCell, AbstractTableCellHandler* pHandler);
/// Inits the handler according to the ComboBoxCell
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_CellInitializer_INCLUDED

View File

@ -0,0 +1,88 @@
//
// CellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/CellRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: CellRenderer
//
// Definition of the CellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_CellRenderer_INCLUDED
#define ExtJS_CellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class Cell;
namespace ExtJS {
class ExtJS_API CellRenderer: public Poco::WebWidgets::Renderer
/// CellRenderer extends Renderer with methods needed to render Cells inside tables
{
public:
CellRenderer();
/// Creates the CellRenderer.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
virtual void renderCell(const Cell* pCell, const RenderContext& context, std::ostream& ostr) = 0;
/// Renders a cell inside a Table, the cell is initialized with a variable named var
/// The config data inside this variable (single field or array) depends on the
/// writeConfigData method
virtual void writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr) = 0;
/// Writes configuration data to the outputstream (e.g.: a CheckBox needs a label and a checked state.
/// writes -> ['label', true]
protected:
virtual ~CellRenderer();
/// Destroys the CellRenderer.
};
inline void CellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_CellRenderer_INCLUDED

View File

@ -0,0 +1,72 @@
//
// CheckButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/CheckButtonCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: CheckButtonCellRenderer
//
// Definition of the CheckButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_CheckButtonCellRenderer_INCLUDED
#define ExtJS_CheckButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ToggleButtonCellRenderer.h"
namespace Poco {
namespace WebWidgets {
class CheckButtonCell;
namespace ExtJS {
class ExtJS_API CheckButtonCellRenderer: public ToggleButtonCellRenderer
/// CheckButtonCellRenderer renders a CheckButton
{
public:
CheckButtonCellRenderer();
/// Creates the CheckButtonCellRenderer.
virtual ~CheckButtonCellRenderer();
/// Destroys the CheckButtonCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_CheckButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,72 @@
//
// CollapsibleRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/CollapsibleRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: CollapsibleRenderer
//
// Definition of the CollapsibleRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_CollapsibleRenderer_INCLUDED
#define ExtJS_CollapsibleRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/FrameRenderer.h"
namespace Poco {
namespace WebWidgets {
class Panel;
namespace ExtJS {
class ExtJS_API CollapsibleRenderer: public FrameRenderer
/// CollapsibleRenderer renders a single Panel
{
public:
CollapsibleRenderer();
/// Creates the CollapsibleRenderer.
protected:
~CollapsibleRenderer();
/// Destroys the CollapsibleRenderer.
void writeProperties(const Frame* pFrame, std::ostream& ostr);
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_CollapsibleRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// ComboBoxCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ComboBoxCellRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: ComboBoxCellRenderer
//
// Definition of the ComboBoxCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ComboBoxCellRenderer_INCLUDED
#define ExtJS_ComboBoxCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API ComboBoxCellRenderer: public Poco::WebWidgets::Renderer
/// ComboBoxCellRenderer renders a ComboBox
{
public:
ComboBoxCellRenderer();
/// Creates the ComboBoxCellRenderer.
virtual ~ComboBoxCellRenderer();
/// Destroys the ComboBoxCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ComboBoxCellRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// DateFieldCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/DateFieldCellRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: DateFieldCellRenderer
//
// Definition of the DateFieldCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_DateFieldCellRenderer_INCLUDED
#define ExtJS_DateFieldCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class DateFieldCell;
namespace ExtJS {
class ExtJS_API DateFieldCellRenderer: public Poco::WebWidgets::Renderer
/// DateFieldCellRenderer renders Dates
{
public:
DateFieldCellRenderer();
/// Creates the DateFieldCellRenderer.
virtual ~DateFieldCellRenderer();
/// Destroys the DateFieldCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static void writeCellProperties(const DateFieldCell* pCell, std::ostream& ostr);
/// Writes cell properties
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_DateFieldCellRenderer_INCLUDED

View File

@ -0,0 +1,91 @@
//
// ExtJS.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ExtJS.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: ExtJS
//
// Basic definitions for the Poco ExtJS library.
// This file must be the first file included by every other ExtJS
// header file.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ExtJS_INCLUDED
#define ExtJS_ExtJS_INCLUDED
#include "Poco/Foundation.h"
//
// The following block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the ExtJS_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// ExtJS_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
//
#if defined(_WIN32) && defined(POCO_DLL)
#if defined(ExtJS_EXPORTS)
#define ExtJS_API __declspec(dllexport)
#else
#define ExtJS_API __declspec(dllimport)
#endif
#endif
#if !defined(ExtJS_API)
#define ExtJS_API
#endif
//
// Automatically link ExtJS library.
//
#if defined(_MSC_VER)
#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(ExtJS_EXPORTS)
#if defined(POCO_DLL)
#if defined(_DEBUG)
#pragma comment(lib, "PocoExtJSd.lib")
#else
#pragma comment(lib, "PocoExtJS.lib")
#endif
#else
#if defined(_DEBUG)
#pragma comment(lib, "PocoExtJSmtd.lib")
#else
#pragma comment(lib, "PocoExtJSmt.lib")
#endif
#endif
#endif
#endif
#endif // ExtJS_ExtJS_INCLUDED

View File

@ -0,0 +1,77 @@
//
// FormRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/FormRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: FormRenderer
//
// Definition of the FormRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_FormRenderer_INCLUDED
#define ExtJS_FormRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
#include "Poco/WebWidgets/Form.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API FormRenderer: public Poco::WebWidgets::Renderer
/// FormRenderer renders Form
{
public:
FormRenderer();
/// Creates the FormRenderer.
virtual ~FormRenderer();
/// Destroys the FormRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static std::string formVariableName(const Form* pForm);
/// Creates the variable name for the form
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_FormRenderer_INCLUDED

View File

@ -0,0 +1,80 @@
//
// FrameRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/FrameRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: FrameRenderer
//
// Definition of the FrameRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_FrameRenderer_INCLUDED
#define ExtJS_FrameRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class Frame;
namespace ExtJS {
class ExtJS_API FrameRenderer: public Poco::WebWidgets::Renderer
/// FrameRenderer renders a single Panel
{
public:
FrameRenderer();
/// Creates the FrameRenderer.
virtual ~FrameRenderer();
/// Destroys the FrameRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
protected:
virtual void writeProperties(const Frame* pFrame, std::ostream& ostr);
/// Writes attributes for a frame
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_FrameRenderer_INCLUDED

View File

@ -0,0 +1,69 @@
//
// GridLayoutRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/GridLayoutRenderer.h#3 $
//
// Library: ExtJS
// Package: Core
// Module: GridLayoutRenderer
//
// Definition of the GridLayoutRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_GridLayoutRenderer_INCLUDED
#define ExtJS_GridLayoutRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/LayoutRenderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API GridLayoutRenderer: public LayoutRenderer
/// GridLayoutRenderer renders a grid
{
public:
GridLayoutRenderer();
/// Creates the GridLayoutRenderer.
virtual ~GridLayoutRenderer();
/// Destroys the GridLayoutRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_GridLayoutRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// HTMLRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/HTMLRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: HTMLRenderer
//
// Definition of the HTMLRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_HTMLRenderer_INCLUDED
#define ExtJS_HTMLRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API HTMLRenderer: public Poco::WebWidgets::Renderer
/// HTMLRenderer renders static text
{
public:
HTMLRenderer();
/// Creates the HTMLRenderer.
virtual ~HTMLRenderer();
/// Destroys the HTMLRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_HTMLRenderer_INCLUDED

View File

@ -0,0 +1,69 @@
//
// HorizontalLayoutRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/HorizontalLayoutRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: HorizontalLayoutRenderer
//
// Definition of the HorizontalLayoutRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_HorizontalLayoutRenderer_INCLUDED
#define ExtJS_HorizontalLayoutRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/LayoutRenderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API HorizontalLayoutRenderer: public LayoutRenderer
/// HorizontalLayoutRenderer renders HorizontalLayout
{
public:
HorizontalLayoutRenderer();
/// Creates the HorizontalLayoutRenderer.
virtual ~HorizontalLayoutRenderer();
/// Destroys the HorizontalLayoutRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_HorizontalLayoutRenderer_INCLUDED

View File

@ -0,0 +1,81 @@
//
// ImageButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ImageButtonCellRenderer.h#3 $
//
// Library: ExtJS
// Package: Core
// Module: ImageButtonCellRenderer
//
// Definition of the ImageButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ImageButtonCellRenderer_INCLUDED
#define ExtJS_ImageButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ButtonCellRenderer.h"
namespace Poco {
namespace WebWidgets {
class ImageButtonCell;
namespace ExtJS {
class ExtJS_API ImageButtonCellRenderer: public ButtonCellRenderer
/// ImageButtonCellRenderer renders a button
{
public:
ImageButtonCellRenderer();
/// Creates the ImageButtonCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
//void renderCell(const Cell* pCell, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr);
/// writes ConfigData, is an array: [imgURI, imgText]
protected:
virtual ~ImageButtonCellRenderer();
/// Destroys the ImageButtonCellRenderer.
private:
void writeHTML(const ImageButtonCell* pButtonCell, bool showTxt, std::ostream& ostr);
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ImageButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// ImageRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ImageRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: ImageRenderer
//
// Definition of the ImageRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ImageRenderer_INCLUDED
#define ExtJS_ImageRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class Image;
namespace ExtJS {
class ExtJS_API ImageRenderer: public Poco::WebWidgets::Renderer
/// ImageRenderer renders Images
{
public:
ImageRenderer();
/// Creates the ImageRenderer.
virtual ~ImageRenderer();
/// Destroys the ImageRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
protected:
void writeHTML(const Image* pImage, std::ostream& ostr);
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ImageRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// LabelRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/LabelRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: LabelRenderer
//
// Definition of the LabelRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_LabelRenderer_INCLUDED
#define ExtJS_LabelRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API LabelRenderer: public Poco::WebWidgets::Renderer
/// LabelRenderer renders static text
{
public:
LabelRenderer();
/// Creates the LabelRenderer.
virtual ~LabelRenderer();
/// Destroys the LabelRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_LabelRenderer_INCLUDED

View File

@ -0,0 +1,84 @@
//
// LayoutRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/LayoutRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: LayoutRenderer
//
// Definition of the LayoutRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_LayoutRenderer_INCLUDED
#define ExtJS_LayoutRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class Layout;
namespace ExtJS {
class ExtJS_API LayoutRenderer: public Poco::WebWidgets::Renderer
/// Abstract LayoutRenderer
{
public:
LayoutRenderer();
/// Creates the LayoutRenderer.
virtual ~LayoutRenderer();
/// Destroys the LayoutRenderer.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
protected:
void renderLayoutHead(const Layout* pLayout, const RenderContext& context, std::ostream& ostr, const std::string& layoutId, const std::string& layoutConfig);
/// layoutId contains the id for the layout parameter (e.g. table for GridLayoutRenderer)
/// layoutConfig contains the string for the layoutConfig parameter (e.g. {columns:3})
void renderParameters(const Layout* pLayout, const RenderContext& context, std::ostream& ostr, const std::string& layoutId, const std::string& layoutConfig);
/// Render the config parameters
void visitChildren(const Layout* pLayout, const RenderContext& context, std::ostream& ostr);
/// Visits children
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_LayoutRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// ListBoxCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ListBoxCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: ListBoxCellRenderer
//
// Definition of the ListBoxCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ListBoxCellRenderer_INCLUDED
#define ExtJS_ListBoxCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class ListBoxCell;
namespace ExtJS {
class ExtJS_API ListBoxCellRenderer: public Poco::WebWidgets::Renderer
/// ListBoxCellRenderer renders a button
{
public:
ListBoxCellRenderer();
/// Creates the ListBoxCellRenderer.
virtual ~ListBoxCellRenderer();
/// Destroys the ListBoxCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static void renderProperties(const ListBoxCell* pCell, std::ostream& ostr);
/// Renders button properties
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ListBoxCellRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// NumberFieldCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/NumberFieldCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: NumberFieldCellRenderer
//
// Definition of the NumberFieldCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_NumberFieldCellRenderer_INCLUDED
#define ExtJS_NumberFieldCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API NumberFieldCellRenderer: public Poco::WebWidgets::Renderer
/// NumberFieldCellRenderer renders a input field containing only numbers
{
public:
NumberFieldCellRenderer();
/// Creates the NumberFieldCellRenderer.
virtual ~NumberFieldCellRenderer();
/// Destroys the NumberFieldCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_NumberFieldCellRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// PageRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/PageRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: PageRenderer
//
// Definition of the PageRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_PageRenderer_INCLUDED
#define ExtJS_PageRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API PageRenderer: public Poco::WebWidgets::Renderer
/// PageRenderer renders an html page
{
public:
PageRenderer();
/// Creates the PageRenderer.
virtual ~PageRenderer();
/// Destroys the PageRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_PageRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// PanelRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/PanelRenderer.h#3 $
//
// Library: ExtJS
// Package: Core
// Module: PanelRenderer
//
// Definition of the PanelRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_PanelRenderer_INCLUDED
#define ExtJS_PanelRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API PanelRenderer: public Poco::WebWidgets::Renderer
/// PanelRenderer renders a single Panel
{
public:
PanelRenderer();
/// Creates the PanelRenderer.
virtual ~PanelRenderer();
/// Destroys the PanelRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_PanelRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// PasswordFieldCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/PasswordFieldCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: PasswordFieldCellRenderer
//
// Definition of the PasswordFieldCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_PasswordFieldCellRenderer_INCLUDED
#define ExtJS_PasswordFieldCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API PasswordFieldCellRenderer: public Poco::WebWidgets::Renderer
/// PasswordFieldCellRenderer renders a password input field
{
public:
PasswordFieldCellRenderer();
/// Creates the PasswordFieldCellRenderer.
virtual ~PasswordFieldCellRenderer();
/// Destroys the PasswordFieldCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_PasswordFieldCellRenderer_INCLUDED

View File

@ -0,0 +1,73 @@
//
// ProgressIndicatorRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ProgressIndicatorRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: ProgressIndicatorRenderer
//
// Definition of the ProgressIndicatorRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ProgressIndicatorRenderer_INCLUDED
#define ExtJS_ProgressIndicatorRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API ProgressIndicatorRenderer: public Poco::WebWidgets::Renderer
/// ProgressIndicatorRenderer renders a ProgressIndicator
{
public:
ProgressIndicatorRenderer();
/// Creates the ProgressIndicatorRenderer.
virtual ~ProgressIndicatorRenderer();
/// Destroys the ProgressIndicatorRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ProgressIndicatorRenderer_INCLUDED

View File

@ -0,0 +1,72 @@
//
// RadioButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/RadioButtonCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: RadioButtonCellRenderer
//
// Definition of the RadioButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_RadioButtonCellRenderer_INCLUDED
#define ExtJS_RadioButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ToggleButtonCellRenderer.h"
namespace Poco {
namespace WebWidgets {
class RadioButtonCell;
namespace ExtJS {
class ExtJS_API RadioButtonCellRenderer: public ToggleButtonCellRenderer
/// RadioButtonCellRenderer renders a RadioButton
{
public:
RadioButtonCellRenderer();
/// Creates the RadioButtonCellRenderer.
virtual ~RadioButtonCellRenderer();
/// Destroys the RadioButtonCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_RadioButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,72 @@
//
// SubmitButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/SubmitButtonCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: SubmitButtonCellRenderer
//
// Definition of the SubmitButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_SubmitButtonCellRenderer_INCLUDED
#define ExtJS_SubmitButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ButtonCellRenderer.h"
namespace Poco {
namespace WebWidgets {
class SubmitButtonCell;
namespace ExtJS {
class ExtJS_API SubmitButtonCellRenderer: public ButtonCellRenderer
/// SubmitButtonCellRenderer renders a SubmitButton
{
public:
SubmitButtonCellRenderer();
/// Creates the SubmitButtonCellRenderer.
virtual ~SubmitButtonCellRenderer();
/// Destroys the SubmitButtonCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_SubmitButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,77 @@
//
// TabViewRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TabViewRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: TabViewRenderer
//
// Definition of the TabViewRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TabViewRenderer_INCLUDED
#define ExtJS_TabViewRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/LayoutRenderer.h"
namespace Poco {
namespace WebWidgets {
class TabView;
namespace ExtJS {
class ExtJS_API TabViewRenderer: public LayoutRenderer
/// TabViewRenderer renders a TabView
{
public:
TabViewRenderer();
/// Creates the TabViewRenderer.
virtual ~TabViewRenderer();
/// Destroys the TabViewRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
private:
void renderParameters(const TabView* pTabView, const RenderContext& context, std::ostream& ostr);
void visitChildren(const TabView* pTabView, const RenderContext& context, std::ostream& ostr);
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TabViewRenderer_INCLUDED

View File

@ -0,0 +1,86 @@
//
// TableCellHandlerFactory.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TableCellHandlerFactory.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: TableCellHandlerFactory
//
// Definition of the TableCellHandlerFactory class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TableCellHandlerFactory_INCLUDED
#define ExtJS_TableCellHandlerFactory_INCLUDED
#include "Poco/WebWidgets/ExtJS/TableCellHandler.h"
#include "Poco/WebWidgets/Cell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class TableCellHandlerFactory
/// TableCellHandlerFactory
{
public:
static TableCellHandlerFactory& instance();
/// Returns an instance of the TableCellHandlerFactory
AbstractTableCellHandler::Ptr factory(const Cell::Ptr& t) const;
/// Retrieves a factory for a given type, throws an exception if no factory is found
void registerFactory(const Type& t, AbstractTableCellHandler::Ptr ptr);
/// Registers a factory for the given type, overwrites existing ones
void registerFactory(const std::type_info& t, AbstractTableCellHandler::Ptr ptr);
/// Registers a factory for the given type, overwrites existing ones
private:
typedef std::map<Type, AbstractTableCellHandler::Ptr> Handlers;
typedef Handlers::iterator Iterator;
typedef Handlers::const_iterator ConstIterator;
TableCellHandlerFactory();
TableCellHandlerFactory(const TableCellHandlerFactory&);
TableCellHandlerFactory& operator=(const TableCellHandlerFactory&);
~TableCellHandlerFactory();
private:
Handlers _handlers;
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TableCellHandlerFactory_INCLUDED

View File

@ -0,0 +1,98 @@
//
// TableRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TableRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: TableRenderer
//
// Definition of the TableRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TableRenderer_INCLUDED
#define ExtJS_TableRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Type.h"
#include "Poco/WebWidgets/Renderer.h"
#include "Poco/WebWidgets/Cell.h"
#include <map>
namespace Poco {
namespace WebWidgets {
class Table;
class TableColumn;
class TableModel;
namespace ExtJS {
class ExtJS_API TableRenderer: public Poco::WebWidgets::Renderer
/// TableRenderer renders a button
{
public:
TableRenderer();
/// Creates the TableRenderer.
virtual ~TableRenderer();
/// Destroys the TableRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
protected:
static void renderProperties(const Table* pTable, const RenderContext& context, std::ostream& ostr);
/// Renders Table properties
static void renderColumns(const Table* pTable, const RenderContext& context, std::ostream& ostr);
/// Renders the columns of the table
static void renderColumn(const Table* pTable, const TableColumn& tc, int idx, const RenderContext& context, std::ostream& ostr);
/// Renders a single colum
static void renderDataModel(const Table* pTable, std::ostream& ostr);
/// Renders the data matrix
static void renderStore(const Table* pTable, std::ostream& ostr);
/// Renders the data store of the table
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TableRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// TextEditCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TextEditCellRenderer.h#1 $
//
// Library: ExtJS
// Package: Core
// Module: TextEditCellRenderer
//
// Definition of the TextEditCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TextEditCellRenderer_INCLUDED
#define ExtJS_TextEditCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class TextEditCell;
namespace ExtJS {
class ExtJS_API TextEditCellRenderer: public Poco::WebWidgets::Renderer
/// TextEditCellRenderer renders a text input field
{
public:
TextEditCellRenderer();
/// Creates the TextEditCellRenderer.
virtual ~TextEditCellRenderer();
/// Destroys the TextEditCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static void writeCellProperties(const TextEditCell* pCell, std::ostream& ostr, bool writeValue=true);
/// Writes cell properties
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TextEditCellRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// TextFieldCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h#3 $
//
// Library: ExtJS
// Package: Core
// Module: TextFieldCellRenderer
//
// Definition of the TextFieldCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TextFieldCellRenderer_INCLUDED
#define ExtJS_TextFieldCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class TextFieldCell;
namespace ExtJS {
class ExtJS_API TextFieldCellRenderer: public Poco::WebWidgets::Renderer
/// TextFieldCellRenderer renders a text input field
{
public:
TextFieldCellRenderer();
/// Creates the TextFieldCellRenderer.
virtual ~TextFieldCellRenderer();
/// Destroys the TextFieldCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static void writeCellProperties(const TextFieldCell* pCell, std::ostream& ostr, bool writeValue=true);
/// Writes cell properties
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TextFieldCellRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// TimeFieldCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/TimeFieldCellRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: TimeFieldCellRenderer
//
// Definition of the TimeFieldCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_TimeFieldCellRenderer_INCLUDED
#define ExtJS_TimeFieldCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Renderer.h"
namespace Poco {
namespace WebWidgets {
class TimeFieldCell;
namespace ExtJS {
class ExtJS_API TimeFieldCellRenderer: public Poco::WebWidgets::Renderer
/// TimeFieldCellRenderer renders an input field containing time values
{
public:
TimeFieldCellRenderer();
/// Creates the TimeFieldCellRenderer.
virtual ~TimeFieldCellRenderer();
/// Destroys the TimeFieldCellRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page body to the given output stream.
static void writeCellProperties(const TimeFieldCell* pCell, std::ostream& ostr);
/// Writes cell properties
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_TimeFieldCellRenderer_INCLUDED

View File

@ -0,0 +1,79 @@
//
// ToggleButtonCellRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/ToggleButtonCellRenderer.h#4 $
//
// Library: ExtJS
// Package: Core
// Module: ToggleButtonCellRenderer
//
// Definition of the ToggleButtonCellRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_ToggleButtonCellRenderer_INCLUDED
#define ExtJS_ToggleButtonCellRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/CellRenderer.h"
namespace Poco {
namespace WebWidgets {
class ToggleButtonCell;
namespace ExtJS {
class ExtJS_API ToggleButtonCellRenderer: public Poco::WebWidgets::Renderer
/// Abstract ToggleButtonCellRenderer renders a ToggleButton
{
public:
void writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr);
/// writes ConfigData, is a simple boolean containing isChecked
static void renderProperties(const ToggleButtonCell* pCell, std::ostream& ostr);
/// Renders button properties
void renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
protected:
ToggleButtonCellRenderer();
/// Creates the ToggleButtonCellRenderer.
virtual ~ToggleButtonCellRenderer();
/// Destroys the ToggleButtonCellRenderer.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_ToggleButtonCellRenderer_INCLUDED

View File

@ -0,0 +1,117 @@
//
// Utility.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/Utility.h#8 $
//
// Library: ExtJS
// Package: Core
// Module: Utility
//
// Definition of the Utility class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_Utility_INCLUDED
#define ExtJS_Utility_INCLUDED
#include "Poco/WebWidgets/ExtJS/ExtJS.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/LookAndFeel.h"
#include <ostream>
namespace Poco {
namespace WebWidgets {
class View;
class Cell;
class Renderable;
namespace ExtJS {
class ExtJS_API Utility
/// Utility offers static helper functions
{
public:
static void initialize(LookAndFeel::Ptr ptr);
/// Initializes the LookAndFeel object to use ExtJS renderers
static LookAndFeel& getDefaultRenderers();
/// Returns the defaultrenderers;
static const std::string& getTmpID();
/// Gets the id of the tmp div element
static Form::Ptr insideForm(const View* pChild);
static Form::Ptr insideForm(const Cell* pChild);
public:
static void writeRenderableProperties(const Renderable* pRend, std::ostream& ostr);
/// Writes renderable properties (mostyl the id)
static void writeCellProperties(const Cell* pCell, std::ostream& ostr, bool writeId = true);
/// Writes cell properties except the value and the tooltip (tooltip is not supported by most ExtJS form fields)
static void writeRenderableProperties(const std::string& id, std::ostream& ostr);
/// Writes renderable properties (mostyl the id)
static void writeCellProperties(const std::string& id,
const std::string& disabled,
const std::string& name,
const std::string& width,
const std::string& height,
std::ostream& ostr);
/// Writes cell properties
static std::string safe(const std::string& str);
/// Escapes characters that could be dangerous in JS
static std::string convertPocoDateToPHPDate(const std::string& dateTimeFmt);
/// Converts a poco date time format string to its PHP/extjs equivalent
private:
static void convertPocoDateToPHPDate(char in, std::string& result);
static void convertPHPDateToPocoDate(char in, std::string& result);
static void escapeCharForPHP(char in, std::string& result);
static LookAndFeel::Ptr createDefault();
private:
Utility();
~Utility();
Utility(const Utility&);
Utility& operator0(const Utility&);
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_Utility_INCLUDED

View File

@ -0,0 +1,69 @@
//
// VerticalLayoutRenderer.h
//
// $Id: //poco/Main/WebWidgets/ExtJS/include/Poco/WebWidgets/ExtJS/VerticalLayoutRenderer.h#2 $
//
// Library: ExtJS
// Package: Core
// Module: VerticalLayoutRenderer
//
// Definition of the VerticalLayoutRenderer class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef ExtJS_VerticalLayoutRenderer_INCLUDED
#define ExtJS_VerticalLayoutRenderer_INCLUDED
#include "Poco/WebWidgets/ExtJS/LayoutRenderer.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
class ExtJS_API VerticalLayoutRenderer: public LayoutRenderer
/// VerticalLayoutRenderer renders a vertical Layout
{
public:
VerticalLayoutRenderer();
/// Creates the VerticalLayoutRenderer.
virtual ~VerticalLayoutRenderer();
/// Destroys the VerticalLayoutRenderer.
void renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr);
/// Emits code for the page header to the given output stream.
};
} } } // namespace Poco::WebWidgets::ExtJS
#endif // ExtJS_VerticalLayoutRenderer_INCLUDED

View File

@ -0,0 +1,17 @@
#
# Makefile
#
# $Id: //poco/Main/WebWidgets/ExtJS/samples/Server/Makefile#1 $
#
# Makefile for Poco Server
#
include $(POCO_BASE)/build/rules/global
objects = Server
target = Server
target_version = 1
target_libs = PocoFoundation PocoXML PocoNet PocoUtil
include $(POCO_BASE)/build/rules/exec

View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="Server"
ProjectGUID="{b0ffa5df-1420-460f-8e87-e4debe801a05}"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib"
OutputFile="bin/Serverd.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\..\lib"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="bin/Serverd.pdb"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories=".\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Net\include;..\..\..\Util\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
StringPooling="TRUE"
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib"
OutputFile="bin/Server.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="..\..\..\lib"
GenerateDebugInformation="FALSE"
ProgramDatabaseFile=""
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="">
</Filter>
<Filter
Name="Source Files"
Filter="">
<File
RelativePath=".\src\Server.cpp">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,211 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="Server"
ProjectGUID="{B0FFA5DF-1420-460F-8E87-E4DEBE801A05}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\..\..\..\Foundation\include;..\..\..\..\XML\include;..\..\..\..\Net\include;..\..\..\..\Util\include;..\..\..\..\WebWidgets\include;..\..\..\..\WebWidgets\ExtJS\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundationd.lib PocoXMLd.lib PocoNetd.lib PocoUtild.lib"
OutputFile="bin/Serverd.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\..\..\lib"
GenerateDebugInformation="true"
ProgramDatabaseFile="bin/Serverd.pdb"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".\include;..\..\..\..\Foundation\include;..\..\..\..\XML\include;..\..\..\..\Net\include;..\..\..\..\Util\include;..\..\..\..\WebWidgets\include;..\..\..\..\WebWidgets\ExtJS\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="PocoFoundation.lib PocoXML.lib PocoNet.lib PocoUtil.lib"
OutputFile="bin/Server.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="..\..\..\..\lib"
GenerateDebugInformation="false"
ProgramDatabaseFile=""
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
>
</Filter>
<Filter
Name="Source Files"
>
<File
RelativePath=".\src\Server.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,222 @@
//
// Server.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/samples/Server/src/Server.cpp#4 $
//
// This sample demonstrates the XYZ class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/Util/ServerApplication.h"
#include "Poco/Util/Option.h"
#include "Poco/Util/OptionException.h"
#include "Poco/Util/OptionSet.h"
#include "Poco/Util/HelpFormatter.h"
#include "Poco/Net/HTTPRequestHandlerFactory.h"
#include "Poco/Net/HTTPRequestHandler.h"
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/HTTPServer.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerParams.h"
#include "Poco/WebWidgets/RequestHandler.h"
#include "Poco/WebWidgets/WebApplication.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Table.h"
#include "Poco/WebWidgets/SubmitButton.h"
#include "Poco/WebWidgets/CheckButton.h"
#include "Poco/WebWidgets/SimpleTableModel.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/DataRetriever.h"
#include "Poco/WebWidgets/TextField.h"
#include "Poco/File.h"
#include "Poco/Path.h"
#include <iostream>
using Poco::Util::Application;
using Poco::Util::ServerApplication;
using Poco::Util::Option;
using Poco::Util::OptionSet;
using Poco::Util::OptionCallback;
using Poco::Util::HelpFormatter;
using Poco::Net::HTTPRequestHandlerFactory;
using Poco::Net::HTTPRequestHandler;
using Poco::Net::HTTPServerRequest;
using Poco::Net::ServerSocket;
using Poco::Net::HTTPServer;
using Poco::Net::HTTPServerParams;
using namespace Poco::WebWidgets;
class WebAppHandlerFactory: public HTTPRequestHandlerFactory
{
public:
WebAppHandlerFactory(WebApplication& app, const Poco::Path& dataPath, Poco::Logger* pLogger):
_app(app),
_dataRoot(dataPath),
_aliases(),
_pLogger(pLogger)
{
_aliases.insert(std::make_pair("", _dataRoot));
}
HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request)
{
const std::string& uri = request.getURI();
Poco::URI url(uri);
const std::string& path = url.getPath();
const std::string& appPath = _app.getURI().getPath();
if (path == appPath ||
(path.size() > appPath.size() && path.find(appPath) == 0 && path[appPath.size()] == ';')
)
return new RequestHandler(_app);
return new DataRetriever(_aliases, _pLogger);
}
private:
WebApplication& _app;
Poco::Path _dataRoot;
DataRetriever::Aliases _aliases;
Poco::Logger* _pLogger;
};
class WebServer: public ServerApplication
{
public:
WebServer(): _helpRequested(false)
{
}
~WebServer()
{
}
protected:
void initialize(Application& self)
{
loadConfiguration(); // load default configuration files, if present
ServerApplication::initialize(self);
logger().information("starting up");
}
void uninitialize()
{
logger().information("shutting down");
ServerApplication::uninitialize();
}
void defineOptions(OptionSet& options)
{
ServerApplication::defineOptions(options);
options.addOption(
Option("help", "h", "display help information on command line arguments")
.required(false)
.repeatable(false)
.callback(OptionCallback<WebServer>(this, &WebServer::handleHelp)));
}
void handleHelp(const std::string& name, const std::string& value)
{
_helpRequested = true;
displayHelp();
stopOptionsProcessing();
}
void displayHelp()
{
HelpFormatter helpFormatter(options());
helpFormatter.setCommand(commandName());
helpFormatter.setUsage("OPTIONS");
helpFormatter.setHeader("A sample server application that demonstrates some of the features of the Util::ServerApplication class.");
helpFormatter.format(std::cout);
}
int main(const std::vector<std::string>& args)
{
if (!_helpRequested)
{
WebApplication webApp(Poco::URI("/"));
LookAndFeel::Ptr laf(new LookAndFeel());
Poco::WebWidgets::ExtJS::Utility::initialize(laf);
webApp.setLookAndFeel(laf);
Page::Ptr ptr = new Page("test");
Form::Ptr pForm = new Form("form1", Poco::URI("/"));
//pForm->setURL(...);
Table::TableColumns tc;
TextField::Ptr pTxt(new TextField("txt"));
tc.push_back(new TableColumn(pTxt->getCell(), "StaticText"));
CheckButton::Ptr ptrCheck(new CheckButton("check", "Const", true));
tc.push_back(new TableColumn(ptrCheck->getCell(), "CheckButton"));
Table::Ptr pTable = new Table(tc, new SimpleTableModel(2));
///init simpletablemodel
pTable->setValue(std::string("one"), 0,0);
pTable->setValue(std::string("two"), 1,0);
pTable->setValue(std::string("three"), 2,0);
pTable->setValue(true, 0,1);
pTable->setValue(false, 1,1);
pTable->setValue(true, 2,1);
pForm->add(pTable);
pForm->add(new TextField("txtfield"));
CheckButton::Ptr ptrCheck2(new CheckButton("checkbutton", "CheckButton", false));
pForm->add(ptrCheck2);
SubmitButton::Ptr ptrBut(new SubmitButton("Submit"));
ptrBut->setText("Submit");
pForm->add(ptrBut);
ptr->add(pForm);
webApp.setCurrentPage(ptr);
unsigned short port = (unsigned short) config().getInt("WebServer.port", 9980);
std::string data = config().getString("WebServer.dataRoot", ".");
Poco::Path aPath(data);
aPath.makeAbsolute();
aPath.makeDirectory();
Poco::File aFile(aPath);
if (!aFile.exists() || aFile.isFile())
throw Poco::Util::InvalidArgumentException("dataRoot is either a file or doesn't exist: must be directory!");
ServerSocket svs(port);
HTTPServer srv(new WebAppHandlerFactory(webApp, aPath, &logger()), svs, new HTTPServerParams);
srv.start();
waitForTerminationRequest();
srv.stop();
}
return Application::EXIT_OK;
}
private:
bool _helpRequested;
};
POCO_SERVER_MAIN(WebServer)

View File

@ -0,0 +1,57 @@
//
// AbstractTableCellHandler.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/AbstractTableCellHandler.cpp#1 $
//
// Library: ExtJS
// Package: Core
// Module: AbstractTableCellHandler
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/AbstractTableCellHandler.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
AbstractTableCellHandler::AbstractTableCellHandler(bool editor, bool renderer):
_editor(editor),
_renderer(renderer)
{
}
AbstractTableCellHandler::~AbstractTableCellHandler()
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,109 @@
//
// ButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ButtonCellRenderer.cpp#8 $
//
// Library: ExtJS
// Package: Core
// Module: ButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ButtonCellRenderer::ButtonCellRenderer()
{
}
ButtonCellRenderer::~ButtonCellRenderer()
{
}
void ButtonCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
const ButtonCell* pButtonCell = static_cast<const Poco::WebWidgets::ButtonCell*>(pRenderable);
std::string content = "'" + Utility::safe(pButtonCell->getString()) + "'";
ButtonCellRenderer::renderButton(pButtonCell, content, true, false,ostr);
}
void ButtonCellRenderer::renderCell(const Cell* pCell, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pCell != 0);
const ButtonCell* pButtonCell = static_cast<const Poco::WebWidgets::ButtonCell*>(pCell);
// is now a variable name
ButtonCellRenderer::renderButton(pButtonCell, "val", false, false, ostr);
}
void ButtonCellRenderer::renderProperties(const ButtonCell* pButtonCell, const std::string& content, bool writeId, bool submitButton, std::ostream& ostr, bool showText)
{
if (showText && !content.empty())
ostr << "text:" << content << ",";
if (submitButton)
{
ostr << "type:'submit',";
Form::Ptr pForm = Utility::insideForm(pButtonCell);
//ostr << "handler: function(){Ext.getCmp('" << pForm->id() << "').getForm().submit({url:'" << pForm->getURI().toString() << "',waitMsg:'Loading'});},";
ostr << "handler: function(){Ext.getCmp('" << pForm->id() << "').getForm().submit();},";
}
Utility::writeCellProperties(pButtonCell, ostr, writeId);
std::string toolTip(pButtonCell->getToolTip());
if (!toolTip.empty())
ostr << ",tooltip:'" << Utility::safe(toolTip) << "'";
}
void ButtonCellRenderer::renderButton(const ButtonCell* pCell, const std::string& content, bool writeId, bool submitButton, std::ostream& ostr, bool showText)
{
ostr << "new Ext.Button({";
ButtonCellRenderer::renderProperties(pCell, content, writeId, submitButton, ostr);
ostr << "})";
}
void ButtonCellRenderer::writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr)
{
ostr << "'" << Utility::safe(pCell->getString()) << "'";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,191 @@
//
// CellInitializer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/CellInitializer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: CellInitializer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/CellInitializer.h"
#include "Poco/WebWidgets/ExtJS/AbstractTableCellHandler.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ToggleButtonCell.h"
#include "Poco/WebWidgets/CheckButtonCell.h"
#include "Poco/WebWidgets/TextEditCell.h"
#include "Poco/WebWidgets/TextFieldCell.h"
#include "Poco/WebWidgets/ComboBoxCell.h"
#include "Poco/WebWidgets/ButtonCell.h"
#include "Poco/NumberFormatter.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
void cellInitializer(const Cell* pCell, AbstractTableCellHandler* pHandler)
{
//don't support label for cell, keep this separate
pHandler->addFixed("hideLabel", "true");
if (!pCell->isEnabled())
pHandler->addFixed("disabled", "true");
View* pOwner = pCell->getOwner();
if (pOwner)
{
if (pOwner->getWidth() > 0)
pHandler->addFixed("width", Poco::NumberFormatter::format(pOwner->getWidth()));
if (pOwner->getHeight() > 0)
pHandler->addFixed("height", Poco::NumberFormatter::format(pOwner->getHeight()));
/* if (!pOwner->getName().empty())
pHandler->addFixed("name", "'"+pOwner->getName()+"'"); */
}
}
void cellInitializer(const ToggleButtonCell* pToggleButtonCell, AbstractTableCellHandler* pHandler)
{
if (!pToggleButtonCell->getLabel().empty())
pHandler->addFixed("boxLabel", "'" + Utility::safe(pToggleButtonCell->getLabel()) + "'");
// renderer is always readonly
pHandler->addFixed("disabled", "true");
//tooltip is not supported by togglebutton
std::string tooltip (pToggleButtonCell->getToolTip());
if (!tooltip.empty())
{
std::string fct("{render:function(c){c.getEl().dom.qtip='");
fct.append(Utility::safe(tooltip));
fct.append("'; c.getEl().dom.qclass = 'x-form-tip';}}");
pHandler->addFixed("listeners", fct);
}
const Cell* pCell = pToggleButtonCell;
cellInitializer(pCell, pHandler);
}
void cellInitializer(const CheckButtonCell* pCell, AbstractTableCellHandler* pHandler)
{
const ToggleButtonCell* pToggleButtonCell = pCell;
cellInitializer(pToggleButtonCell, pHandler);
}
void cellInitializer(const TextEditCell* pCell, AbstractTableCellHandler* pHandler)
{
cellInitializer(static_cast<const Cell*>(pCell), pHandler);
if (!pCell->isEditable())
pHandler->addFixed("readOnly", "true");
if (pCell->getHeightInPixel() > 0)
pHandler->addFixed("height", Poco::NumberFormatter::format(pCell->getHeightInPixel()));
if (pCell->getGrow())
pHandler->addFixed("grow","true");
if (!pCell->getPlaceHolder().empty())
pHandler->addFixed("emptyText", "'" + Utility::safe(pCell->getPlaceHolder()) + "'");
//tooltip is not supported by textEdit, add listeners
std::string tooltip (pCell->getToolTip());
if (!tooltip.empty())
{
std::string fct("{render: function(c) {Ext.QuickTips.register({target: c.getEl(),text: '");
fct.append(Utility::safe(tooltip));
fct.append("'});}}");
pHandler->addFixed("listeners", fct);
}
}
void cellInitializer(const TextFieldCell* pCell, AbstractTableCellHandler* pHandler)
{
cellInitializer(static_cast<const Cell*>(pCell), pHandler);
if (!pCell->isEditable())
pHandler->addFixed("readOnly", "true");
if (pCell->getMaxLength() > 0)
pHandler->addFixed("maxLength", Poco::NumberFormatter::format(pCell->getMaxLength()));
if (!pCell->getPlaceHolder().empty())
pHandler->addFixed("emptyText", "'" + Utility::safe(pCell->getPlaceHolder()) + "'");
//tooltip is not supported by textEdit, add listeners
std::string tooltip (pCell->getToolTip());
if (!tooltip.empty())
{
std::string fct("{render: function(c) {Ext.QuickTips.register({target: c.getEl(),text: '");
fct.append(Utility::safe(tooltip));
fct.append("'});}}");
pHandler->addFixed("listeners", fct);
}
}
void cellInitializer(const ComboBoxCell* pCell, AbstractTableCellHandler* pHandler)
{
cellInitializer(static_cast<const TextFieldCell*>(pCell), pHandler);
std::string store("new Ext.data.SimpleStore({fields:['d'], data:[");
//now serialize data
std::vector<Any>::const_iterator it = pCell->begin();
std::vector<Any>::const_iterator itEnd = pCell->end();
Formatter::Ptr ptrFormatter = pCell->getFormatter();
for (; it != itEnd; ++it)
{
if (it != pCell->begin())
store.append(",");
store.append("['");
if (ptrFormatter)
store.append(ptrFormatter->format(*it));
else
store.append(RefAnyCast<std::string>(*it));
store.append("']");
}
store.append("]})");
pHandler->addFixed("store", store);
pHandler->addFixed("displayField", "'d'");
pHandler->addFixed("typeAhead","true");
pHandler->addFixed("mode", "'local'");
pHandler->addFixed("triggerAction","'all'");
}
void cellInitializer(const ButtonCell* pCell, AbstractTableCellHandler* pHandler)
{
cellInitializer(static_cast<const Cell*>(pCell), pHandler);
std::string toolTip(pCell->getToolTip());
if (!toolTip.empty())
pHandler->addFixed("tooltip:", "'" + Utility::safe(toolTip) + "'");
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,59 @@
//
// CellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/DateFieldCelllRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: CellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/CellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Cell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
CellRenderer::CellRenderer()
{
}
CellRenderer::~CellRenderer()
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,72 @@
//
// CheckButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/CheckButtonCellRenderer.cpp#2 $
//
// Library: ExtJS
// Package: Core
// Module: CheckButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/CheckButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/CheckButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
CheckButtonCellRenderer::CheckButtonCellRenderer()
{
}
CheckButtonCellRenderer::~CheckButtonCellRenderer()
{
}
void CheckButtonCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::CheckButtonCell));
const CheckButtonCell* pCheckButtonCell = static_cast<const Poco::WebWidgets::CheckButtonCell*>(pRenderable);
ostr << "new Ext.form.Checkbox({";
ToggleButtonCellRenderer::renderProperties(pCheckButtonCell, ostr);
ostr << "})";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,64 @@
//
// CollapsibleRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/CollapsibleRenderer.cpp#1 $
//
// Library: ExtJS
// Package: Core
// Module: CollapsibleRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/CollapsibleRenderer.h"
#include "Poco/WebWidgets/Collapsible.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
CollapsibleRenderer::CollapsibleRenderer()
{
}
CollapsibleRenderer::~CollapsibleRenderer()
{
}
void CollapsibleRenderer::writeProperties(const Frame* pFrame, std::ostream& ostr)
{
const Collapsible* pC = static_cast<const Collapsible*>(pFrame);
FrameRenderer::writeProperties(pFrame, ostr);
ostr << ",collapsible:true,titleCollapse:true, header:true,collapsed:" << (pC->getCollapse()?"true":"false");
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,93 @@
//
// ComboBoxCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ComboBoxCellRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: ComboBoxCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ComboBoxCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ComboBoxCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ComboBoxCellRenderer::ComboBoxCellRenderer()
{
}
ComboBoxCellRenderer::~ComboBoxCellRenderer()
{
}
void ComboBoxCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::ComboBoxCell));
const ComboBoxCell* pCell = static_cast<const Poco::WebWidgets::ComboBoxCell*>(pRenderable);
ostr << "new Ext.form.ComboBox({";
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << ", store: new Ext.data.SimpleStore({fields:['d'], data:[";
//now serialize data
std::vector<Any>::const_iterator it = pCell->begin();
std::vector<Any>::const_iterator itEnd = pCell->end();
Formatter::Ptr ptrFormatter = pCell->getFormatter();
for (; it != itEnd; ++it)
{
if (it != pCell->begin())
ostr << ",";
if (ptrFormatter)
ostr << "['" << ptrFormatter->format(*it) << "']";
else
ostr << "['" << RefAnyCast<std::string>(*it) << "']";
}
ostr << "]})";
ostr << ",displayField:'d',typeAhead:true,mode:'local',triggerAction:'all'";
ostr << "})";
}
void ComboBoxCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,90 @@
//
// DateFieldCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/DateFieldCellRenderer.cpp#2 $
//
// Library: ExtJS
// Package: Core
// Module: DateFieldCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/DateFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/DateFieldCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
DateFieldCellRenderer::DateFieldCellRenderer()
{
}
DateFieldCellRenderer::~DateFieldCellRenderer()
{
}
void DateFieldCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::DateFieldCell));
const DateFieldCell* pCell = static_cast<const Poco::WebWidgets::DateFieldCell*>(pRenderable);
ostr << "new Ext.form.DateField({";
DateFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
}
void DateFieldCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void DateFieldCellRenderer::writeCellProperties(const DateFieldCell* pCell, std::ostream& ostr)
{
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
//a time value in UTC timezone will have a Z at the end of the time
//unfortunately there is a bug in the iso8601 code of extjs 2.0.2
//it fails to parse the Z
// we avoid that bug in the WebWidgets DateFormatter where values are never written with UTC but with 0 offset if required
const std::string& fmt = pCell->getFormat();
ostr << ",format:'" << Utility::convertPocoDateToPHPDate(fmt) << "'";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,98 @@
//
// FormRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/FormRenderer.cpp#7 $
//
// Library: ExtJS
// Package: Core
// Module: FormRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/Button.h"
#include "Poco/NumberFormatter.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
FormRenderer::FormRenderer()
{
}
FormRenderer::~FormRenderer()
{
}
void FormRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Form));
const Form* pForm = static_cast<const Poco::WebWidgets::Form*>(pRenderable);
ostr << "new Ext.FormPanel({id:'" << pForm->id() << "',";
ostr << "onSubmit:Ext.emptyFn,submit:function(){this.getEl().dom.submit();},";
if (pForm->getMethod() == Form::METHOD_POST)
ostr << "method:'POST',";
ostr << "title:'" << pForm->getName() << "',autoHeight:true,autoWidth:true,url:'" << pForm->getURI().toString() << "',frame:true,items:[";
ContainerView::ConstIterator it = pForm->begin();
ContainerView::ConstIterator itEnd = pForm->end();
for (; it != itEnd; ++it)
{
if (it != pForm->begin())
ostr << ",";
// it points to a view pointer
(*it)->renderHead(context, ostr);
}
ostr << "]})";
//ostr << varName << ".render('p" << pForm->id() << "');";
}
void FormRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
std::string FormRenderer::formVariableName(const Form* pForm)
{
static const std::string prefix("f");
return prefix + Poco::NumberFormatter::format(pForm->id());
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,105 @@
//
// FrameRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/FrameRenderer.cpp#2 $
//
// Library: ExtJS
// Package: Core
// Module: FrameRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/FrameRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Frame.h"
#include "Poco/WebWidgets/Layout.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
FrameRenderer::FrameRenderer()
{
}
FrameRenderer::~FrameRenderer()
{
}
void FrameRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
const Frame* pPanel = static_cast<const Poco::WebWidgets::Frame*>(pRenderable);
ostr << "new Ext.Panel({";
writeProperties(pPanel, ostr);
// a frame has exactly one child
// if this child is a layout we are fine otherwise we have to generate the items array
View::Ptr pChild = pPanel->getChild();
if (pChild)
{
Layout::Ptr pLayout = pChild.cast<Layout>();
if (pLayout)
{
ostr << ",";
pLayout->renderHead(context, ostr);
}
else
{
ostr << ",items:[";
pChild->renderHead(context, ostr);
ostr << "]";
}
}
ostr << "})";
}
void FrameRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void FrameRenderer::writeProperties(const Frame* pFrame, std::ostream& ostr)
{
Utility::writeRenderableProperties(pFrame, ostr);
ostr << ",frame:true";
if (pFrame->getWidth() > 0)
ostr << ",width:" << pFrame->getWidth();
if (pFrame->getHeight() > 0)
ostr << ",height:" << pFrame->getHeight();
if (!pFrame->getTitle().empty())
ostr << ",title:'" << pFrame->getTitle() << "'";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,70 @@
//
// GridLayoutRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/GridLayoutRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: GridLayoutRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/GridLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/GridLayout.h"
#include <sstream>
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
GridLayoutRenderer::GridLayoutRenderer()
{
}
GridLayoutRenderer::~GridLayoutRenderer()
{
}
void GridLayoutRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::GridLayout));
const GridLayout* pLayout = static_cast<const Poco::WebWidgets::GridLayout*>(pRenderable);
std::ostringstream layoutConfig;
layoutConfig << "{columns:" << pLayout->columns() << "}";
std::string layout("table");
LayoutRenderer::renderLayoutHead(pLayout, context, ostr, layout, layoutConfig.str());
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,74 @@
//
// HTMLRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/HTMLRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: HTMLRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/HTMLRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/HTML.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
HTMLRenderer::HTMLRenderer()
{
}
HTMLRenderer::~HTMLRenderer()
{
}
void HTMLRenderer::renderHead(const Renderable* pRenderable, const RenderContext&, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::HTML));
const HTML* pHTML = static_cast<const Poco::WebWidgets::HTML*>(pRenderable);
ostr << "new Ext.Panel({border:false,bodyBorder:false,";
ostr << "html:'" << pHTML->getText() << "'})";
}
void HTMLRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,70 @@
//
// HorizontalLayoutRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/HorizontalLayoutRenderer.cpp#1 $
//
// Library: ExtJS
// Package: Core
// Module: HorizontalLayoutRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/HorizontalLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/HorizontalLayout.h"
#include <sstream>
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
HorizontalLayoutRenderer::HorizontalLayoutRenderer()
{
}
HorizontalLayoutRenderer::~HorizontalLayoutRenderer()
{
}
void HorizontalLayoutRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::HorizontalLayout));
const HorizontalLayout* pLayout = static_cast<const Poco::WebWidgets::HorizontalLayout*>(pRenderable);
std::ostringstream layoutConfig;
layoutConfig << "{columns:" << pLayout->size() << "}";
std::string layout("column");
LayoutRenderer::renderLayoutHead(pLayout, context, ostr, layout, layoutConfig.str());
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,113 @@
//
// ImageButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ImageButtonCellRenderer.cpp#5 $
//
// Library: ExtJS
// Package: Core
// Module: ImageButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ImageButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ImageButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ImageButtonCellRenderer::ImageButtonCellRenderer()
{
}
ImageButtonCellRenderer::~ImageButtonCellRenderer()
{
}
void ImageButtonCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::ImageButtonCell));
const ImageButtonCell* pButtonCell = static_cast<const Poco::WebWidgets::ImageButtonCell*>(pRenderable);
Image::Ptr ptrImg = pButtonCell->getImage();
bool hasImg = ptrImg && !ptrImg->getURI().empty();
if (!hasImg)
ostr << "new Ext.Button({";
else
ostr << "new Ext.Panel({border:false,bodyBorder:false,";
if (!hasImg) // write a normal button
ButtonCellRenderer::renderHead(pButtonCell, context, ostr);
else
{
ostr << "html:";
bool showTxt = pButtonCell->getShowText() || !hasImg;
writeHTML(pButtonCell, showTxt, ostr);
}
ostr << "})";
}
void ImageButtonCellRenderer::writeHTML(const ImageButtonCell* pButtonCell, bool showTxt, std::ostream& ostr)
{
Image::Ptr ptrImg = pButtonCell->getImage();
ostr << "'<div>";
ostr << "<div>";
ostr << "<input src=\"" << Utility::safe(ptrImg->getURI().toString()) << "\"";
if (!ptrImg->getName().empty())
ostr << " name=\"" << ptrImg->getName() << "\"";
if (ptrImg->getWidth() > 0)
ostr << " width=\"" << ptrImg->getWidth() << "\"";
if (ptrImg->getHeight() > 0)
ostr << " height=\"" << ptrImg->getHeight() << "\"";
std::string tooltip = ptrImg->getToolTip();
if (!tooltip.empty())
ostr << " alt=\"" << Utility::safe(tooltip) << "\"";
ostr << " type=\"image\"/>";
ostr << "</div>";
std::string txt(pButtonCell->getOwner()->getText());
if (showTxt && !txt.empty())
ostr << "<div>" << Utility::safe(pButtonCell->getOwner()->getText()) << "</div>";
ostr << "</div>'";
}
void ImageButtonCellRenderer::writeConfigData(const Cell* pCell, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,89 @@
//
// ImageRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ImageRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: ImageRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ImageRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Image.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ImageRenderer::ImageRenderer()
{
}
ImageRenderer::~ImageRenderer()
{
}
void ImageRenderer::renderHead(const Renderable* pRenderable, const RenderContext&, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Image));
const Image* pImage = static_cast<const Poco::WebWidgets::Image*>(pRenderable);
ostr << "new Ext.Panel({border:false,bodyBorder:false,";
ostr << "html:";
writeHTML(pImage, ostr);
ostr << "})";
}
void ImageRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void ImageRenderer::writeHTML(const Image* pImage, std::ostream& ostr)
{
ostr << "'<img src=\"" << Utility::safe(pImage->getURI().toString()) << "\" ";
std::string txt(pImage->getText());
if (!txt.empty())
ostr << "alt=\"" << txt << "\" ";
std::string tooltip(pImage->getToolTip());
if (!tooltip.empty())
ostr << "title=\"" << tooltip << "\" ";
ostr << "/>'";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,74 @@
//
// LabelRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/LabelRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: LabelRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/LabelRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Label.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
LabelRenderer::LabelRenderer()
{
}
LabelRenderer::~LabelRenderer()
{
}
void LabelRenderer::renderHead(const Renderable* pRenderable, const RenderContext&, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Label));
const Label* pLabel = static_cast<const Poco::WebWidgets::Label*>(pRenderable);
ostr << "{xtype:'label', text:'" << Utility::safe(pLabel->getText()) << "'}";
}
void LabelRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,130 @@
//
// LayoutRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/LayoutRenderer.cpp#5 $
//
// Library: ExtJS
// Package: Core
// Module: LayoutRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/LayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Layout.h"
#include "Poco/WebWidgets/Frame.h"
#include "Poco/WebWidgets/Panel.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
LayoutRenderer::LayoutRenderer()
{
}
LayoutRenderer::~LayoutRenderer()
{
}
void LayoutRenderer::renderLayoutHead(const Layout* pLayout, const RenderContext& context, std::ostream& ostr, const std::string& layoutId, const std::string& layoutConfig)
{
poco_assert_dbg(pLayout != 0);
Renderable::ID id(0);
View::Ptr ptrParent = pLayout->parent();
if (!(ptrParent && (ptrParent.cast<Frame>() || ptrParent.cast<Panel>())))
{
// the parent is not a panel
// assume that the direct parent is a panel
ostr << "new Ext.Panel({border:false,bodyBorder:false,";
renderParameters(pLayout, context, ostr, layoutId, layoutConfig);
ostr << "})";
}
else
{
renderParameters(pLayout, context, ostr, layoutId, layoutConfig);
}
}
void LayoutRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void LayoutRenderer::renderParameters(const Layout* pLayout, const RenderContext& context, std::ostream& ostr, const std::string& layoutId, const std::string& layoutConfig)
{
poco_assert_dbg(pLayout != 0);
bool writeComma = false;
if (pLayout->getWidth() > 0)
ostr << "width:" << pLayout->getWidth() << ",";
if (!layoutId.empty())
{
ostr << "layout:'" << layoutId << "'";
writeComma = true;
}
if (!layoutConfig.empty())
{
if (writeComma)
ostr << ",layoutConfig:" << layoutConfig;
else
ostr << ",layoutConfig:" << layoutConfig;
writeComma = true;
}
if (writeComma)
ostr << ",items:[";
else
ostr << "items:[";
visitChildren(pLayout, context, ostr);
ostr << "]";
}
void LayoutRenderer::visitChildren(const Layout* pLayout, const RenderContext& context, std::ostream& ostr)
{
ContainerView::ConstIterator it = pLayout->begin();
for (; it != pLayout->end(); ++it)
{
if (it != pLayout->begin())
ostr << ",";
if (*it)
(*it)->renderHead(context, ostr);
else
ostr << "{}";
}
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,118 @@
//
// ListBoxCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ListBoxCellRenderer.cpp#1 $
//
// Library: ExtJS
// Package: Core
// Module: ListBoxCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ListBoxCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ListBoxCell.h"
#include <sstream>
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ListBoxCellRenderer::ListBoxCellRenderer()
{
}
ListBoxCellRenderer::~ListBoxCellRenderer()
{
}
void ListBoxCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::ListBoxCell));
const ListBoxCell* pListBoxCell = static_cast<const Poco::WebWidgets::ListBoxCell*>(pRenderable);
ostr << "new Ext.ux.Multiselect({";
ListBoxCellRenderer::renderProperties(pListBoxCell, ostr);
ostr << "})";
}
void ListBoxCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void ListBoxCellRenderer::renderProperties(const ListBoxCell* pListBoxCell, std::ostream& ostr)
{
Utility::writeRenderableProperties(pListBoxCell, ostr);
if (pListBoxCell->getHeight() > 0)
ostr << ",height:" << pListBoxCell->getHeight();
if (pListBoxCell->getWidth() > 0)
ostr << ",width:" << pListBoxCell->getWidth();
ostr << ",dataFields:['i','d'],data:[";
//now serialize data, use cached content for that
ListBoxCell::StringData::const_iterator it = pListBoxCell->beginString();
ListBoxCell::StringData::const_iterator itEnd = pListBoxCell->endString();
ListBoxCell::Data::const_iterator itV = pListBoxCell->begin();
ListBoxCell::Data::const_iterator itVEnd = pListBoxCell->end();
int cnt = 0;
bool selected=false;
std::ostringstream initValue;
initValue << "'";
for (; it != itEnd; ++it, ++cnt, ++itV)
{
if (it != pListBoxCell->beginString())
ostr << ",";
if (itV->second)
{
if (selected)
initValue << ",";
initValue << cnt;
selected = true;
}
ostr << "['" << cnt << "','" << *it << "']";
}
initValue << "'";
ostr << "]";
ostr << ",valueField:'i',displayField:'d',initVal:" << initValue.str();
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,78 @@
//
// NumberFieldCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/NumberFieldCellRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: NumberFieldCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/NumberFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/NumberFieldCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
NumberFieldCellRenderer::NumberFieldCellRenderer()
{
}
NumberFieldCellRenderer::~NumberFieldCellRenderer()
{
}
void NumberFieldCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::NumberFieldCell));
const NumberFieldCell* pCell = static_cast<const Poco::WebWidgets::NumberFieldCell*>(pRenderable);
ostr << "new Ext.form.NumberField({";
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
}
void NumberFieldCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,142 @@
//
// PageRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/PageRenderer.cpp#8 $
//
// Library: ExtJS
// Package: Core
// Module: PageRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/PageRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Page.h"
#include "Poco/WebWidgets/RenderContext.h"
#include "Poco/WebWidgets/LookAndFeel.h"
#include "Poco/WebWidgets/WebApplication.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
PageRenderer::PageRenderer()
{
}
PageRenderer::~PageRenderer()
{
}
void PageRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
static const std::string STRO_HTML("<html>"); static const std::string STRO_HEAD ("<head>"); static const std::string STRO_TITLE ("<title>"); static const std::string STRC_HEAD ("</head>"); static const std::string STRC_TITLE ("</title>");
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Page));
const Page* pPage = static_cast<const Poco::WebWidgets::Page*>(pRenderable);
poco_assert_dbg (WebApplication::instance().getCurrentPage().get() == pPage);
const LookAndFeel& laf = context.lookAndFeel();
ostr << STRO_HTML << STRO_HEAD << STRO_TITLE;
ostr << pPage->getName();
ostr << STRC_TITLE;
//include javascript files: TODO: use ResourceManager
ostr << "<script type=\"text/javascript\" src=\"ext-base.js\"></script>"; ostr << "<script type=\"text/javascript\" src=\"ext-all.js\"></script>";
ostr << "<script type=\"text/javascript\" src=\"DDView.js\"></script>";
ostr << "<script type=\"text/javascript\" src=\"MultiSelect.js\"></script>";
ostr << "<link rel=\"stylesheet\" type=\"text/css\" href=\"resources/css/ext-all.css\">";
ostr << "<link rel=\"stylesheet\" type=\"text/css\" href=\"MultiSelect.css\">";
if (!pPage->empty())
{
//start inline javascript block
ostr << "<script type=\"text/javascript\">";
ostr << "Ext.onReady(function() {";
ostr << "Ext.QuickTips.init();";
// always nest a panel around, so we can get rid of dynamic casts to check for parent type
ostr << "new Ext.Panel({renderTo:'p" << pPage->id() << "',border:false,bodyBorder:false";
if (pPage->getHeight() > 0)
ostr << ",height:" << pPage->getHeight();
else
ostr << ",height:Ext.lib.Dom.getViewHeight()";
if (pPage->getWidth() > 0)
ostr << ",width:" << pPage->getWidth();
else
ostr << ",width:Ext.lib.Dom.getViewWidth()";
ostr << ",items:[";
//process all children
ContainerView::ConstIterator it = pPage->begin();
ContainerView::ConstIterator itEnd = pPage->end();
for (; it != itEnd; ++it)
{
if (it != pPage->begin())
ostr << ",";
(*it)->renderHead(context, ostr);
}
//close the panel
ostr << "]});";
//auto-show all windows
ostr << "Ext.WindowMgr.each( function(w) {w.show(this);});";
//close onReady
ostr << "});";
//close inline JS block
ostr << "</script>";
}
ostr << STRC_HEAD;
}
void PageRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Page));
const Page* pPage = static_cast<const Poco::WebWidgets::Page*>(pRenderable);
const LookAndFeel& laf = context.lookAndFeel();
ostr << "<body>";
if (!pPage->empty())
{
//process all children: JS is a JavaScript library, we NEVER write to the body
ostr << "<div id=\"p" << pPage->id() << "\" />";
// also a tmp id for temporary storage!
ostr << "<div id=\"" << Utility::getTmpID() << "\" />";
}
ostr << "</body>";
ostr << "</html>";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,105 @@
//
// PanelRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/PanelRenderer.cpp#5 $
//
// Library: ExtJS
// Package: Core
// Module: PanelRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/PanelRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/Panel.h"
#include "Poco/WebWidgets/Layout.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
PanelRenderer::PanelRenderer()
{
}
PanelRenderer::~PanelRenderer()
{
}
void PanelRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Panel));
const Panel* pPanel = static_cast<const Poco::WebWidgets::Panel*>(pRenderable);
ostr << "new Ext.Window({";
Utility::writeRenderableProperties(pRenderable, ostr);
if (!pPanel->getName().empty())
ostr << ",title:'" << pPanel->getName() << "'";
if (pPanel->getWidth() > 0)
ostr << ",width:" << pPanel->getWidth();
if (pPanel->getHeight() > 0)
ostr << ",height:" << pPanel->getHeight();
if (pPanel->getModal())
ostr << ",modal:true";
// minimizable set to true only fires a minimize event, without an event handler attached
// it is pretty useless, instead use collapsible
ostr << ",header:true,maximizable:true,collapsible:true";
// a panel has exactly one child
// if this child is a layout we are fine otherwise we have to generate the items array
View::Ptr pChild = pPanel->getChild();
if (pChild)
{
Layout::Ptr pLayout = pChild.cast<Layout>();
if (pLayout)
{
ostr << ",";
pLayout->renderHead(context, ostr);
}
else
{
ostr << ",items:[";
pChild->renderHead(context, ostr);
ostr << "]";
}
}
ostr << "})";
}
void PanelRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,78 @@
//
// PasswordFieldCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/PasswordFieldCellRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: PasswordFieldCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/PasswordFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/PasswordFieldCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
PasswordFieldCellRenderer::PasswordFieldCellRenderer()
{
}
PasswordFieldCellRenderer::~PasswordFieldCellRenderer()
{
}
void PasswordFieldCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::PasswordFieldCell));
const PasswordFieldCell* pCell = static_cast<const Poco::WebWidgets::PasswordFieldCell*>(pRenderable);
//textfield with inputType: 'password'
ostr << "new Ext.form.TextField({inputType:'password',";
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
}
void PasswordFieldCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,88 @@
//
// ProgressIndicatorRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ProgressIndicatorRenderer.cpp#4 $
//
// Library: ExtJS
// Package: Core
// Module: ProgressIndicatorRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ProgressIndicatorRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ProgressIndicator.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ProgressIndicatorRenderer::ProgressIndicatorRenderer()
{
}
ProgressIndicatorRenderer::~ProgressIndicatorRenderer()
{
}
void ProgressIndicatorRenderer::renderHead(const Renderable* pRenderable, const RenderContext&, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::ProgressIndicator));
const ProgressIndicator* pProgressIndicator = static_cast<const Poco::WebWidgets::ProgressIndicator*>(pRenderable);
//use progressbar
ostr << "new Ext.ProgressBar({";
Utility::writeRenderableProperties(pRenderable, ostr);
std::string txt(pProgressIndicator->getText());
if (!txt.empty())
ostr << ",text:'" << txt << "'";
if (pProgressIndicator->getHeight() > 0)
ostr << ",height:" << pProgressIndicator->getHeight();
if (pProgressIndicator->getWidth() > 0)
ostr << ",width:" << pProgressIndicator->getWidth();
if (pProgressIndicator->getUpdateMode() == ProgressIndicator::UM_MANUAL)
ostr << ",value:" << pProgressIndicator->getProgressPercent();
//in automatic use we simply call wait
//TODO: how should we integrate that???
ostr << "})";
}
void ProgressIndicatorRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,72 @@
//
// RadioButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/RadioButtonCellRenderer.cpp#2 $
//
// Library: ExtJS
// Package: Core
// Module: RadioButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/RadioButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/RadioButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
RadioButtonCellRenderer::RadioButtonCellRenderer()
{
}
RadioButtonCellRenderer::~RadioButtonCellRenderer()
{
}
void RadioButtonCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::RadioButtonCell));
const RadioButtonCell* pRadioButtonCell = static_cast<const Poco::WebWidgets::RadioButtonCell*>(pRenderable);
ostr << "new Ext.form.Radio({";
ToggleButtonCellRenderer::renderProperties(pRadioButtonCell, ostr);
ostr << "})";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,69 @@
//
// SubmitButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/SubmitButtonCellRenderer.cpp#1 $
//
// Library: ExtJS
// Package: Core
// Module: SubmitButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/SubmitButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/SubmitButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
SubmitButtonCellRenderer::SubmitButtonCellRenderer()
{
}
SubmitButtonCellRenderer::~SubmitButtonCellRenderer()
{
}
void SubmitButtonCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::SubmitButtonCell));
const SubmitButtonCell* pButtonCell = static_cast<const Poco::WebWidgets::SubmitButtonCell*>(pRenderable);
std::string content = "'" + Utility::safe(pButtonCell->getString()) + "'";
ButtonCellRenderer::renderButton(pButtonCell, content, true, true, ostr);
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,105 @@
//
// TabViewRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TabViewRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: TabViewRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TabViewRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/TabView.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TabViewRenderer::TabViewRenderer()
{
}
TabViewRenderer::~TabViewRenderer()
{
}
void TabViewRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::TabView));
const TabView* pTabView = static_cast<const Poco::WebWidgets::TabView*>(pRenderable);
// mhh, a tabPanel inside a form??? is this even possible?
ostr << "new Ext.TabPanel({";
if (pTabView->getActiveView() != TabView::NONE_SELECTED)
ostr << "activeTab:" << pTabView->getActiveView() << ",layoutOnTabChange: true,";
Utility::writeRenderableProperties(pRenderable, ostr);
ostr << ",";
renderParameters(pTabView, context, ostr);
ostr << "})";
}
void TabViewRenderer::renderParameters(const TabView* pTabView, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg(pTabView != 0);
ostr << "items:[";
visitChildren(pTabView, context, ostr);
ostr << "]";
}
void TabViewRenderer::visitChildren(const TabView* pTabView, const RenderContext& context, std::ostream& ostr)
{
ContainerView::ConstIterator it = pTabView->begin();
for (; it != pTabView->end(); ++it)
{
if (it != pTabView->begin())
ostr << ",";
if (*it)
{
ostr << "{title:'" << (*it)->getName() << "',";
ostr << "items:[";
(*it)->renderHead(context, ostr);
ostr << "]}";
}
else
ostr << "{}";
}
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,128 @@
//
// TableCellHandlerFactory.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TableCellHandlerFactory.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: TableCellHandlerFactory
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TableCellHandlerFactory.h"
#include "Poco/WebWidgets/CheckButtonCell.h"
#include "Poco/WebWidgets/TextEditCell.h"
#include "Poco/WebWidgets/TextFieldCell.h"
#include "Poco/WebWidgets/ComboBoxCell.h"
#include "Poco/WebWidgets/ButtonCell.h"
#include "Poco/WebWidgets/NumberFieldCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TableCellHandlerFactory::TableCellHandlerFactory()
{
{
TableCellHandler<CheckButtonCell>::Ptr pHandle(new TableCellHandler<CheckButtonCell>("Ext.form.Checkbox", true, true));
pHandle->addDynamic("checked", &CheckButtonCell::getBool);
registerFactory(typeid(CheckButtonCell), pHandle);
}
{
TableCellHandler<TextEditCell>::Ptr pHandle(new TableCellHandler<TextEditCell>("Ext.form.TextArea", true, true));
pHandle->addDynamic("value", &TextEditCell::getString);
registerFactory(typeid(TextEditCell), pHandle);
}
{
TableCellHandler<TextFieldCell>::Ptr pHandle(new TableCellHandler<TextFieldCell>("Ext.form.TextField", true, false));
pHandle->addDynamic("value", &TextFieldCell::getString);
registerFactory(typeid(TextFieldCell), pHandle);
}
{
TableCellHandler<NumberFieldCell>::Ptr pHandle(new TableCellHandler<NumberFieldCell>("Ext.form.NumberField", true, false));
pHandle->addDynamic("value", &NumberFieldCell::getString);
registerFactory(typeid(NumberFieldCell), pHandle);
}
{
TableCellHandler<ComboBoxCell>::Ptr pHandle(new TableCellHandler<ComboBoxCell>("Ext.form.ComboBox", true, false));
pHandle->addDynamic("value", &ComboBoxCell::getString);
registerFactory(typeid(ComboBoxCell), pHandle);
}
{
TableCellHandler<ButtonCell>::Ptr pHandle(new TableCellHandler<ButtonCell>("Ext.Button", false, true));
pHandle->addDynamic("text", &ButtonCell::getString);
registerFactory(typeid(ButtonCell), pHandle);
}
{
TableCellHandler<ImageButtonCell>::Ptr pHandle(new TableCellHandler<ImageButtonCell>(false, true));
registerFactory(typeid(ImageButtonCell), pHandle);
}
}
TableCellHandlerFactory::~TableCellHandlerFactory()
{
}
TableCellHandlerFactory& TableCellHandlerFactory::instance()
{
static TableCellHandlerFactory fct;
return fct;
}
AbstractTableCellHandler::Ptr TableCellHandlerFactory::factory(const Cell::Ptr& t) const
{
ConstIterator it = _handlers.find(Type(t->type()));
if (it == _handlers.end())
throw NotFoundException();
AbstractTableCellHandler::Ptr pCopy = it->second->clone();
pCopy->init(t);
return pCopy;
}
void TableCellHandlerFactory::registerFactory(const Type& t, AbstractTableCellHandler::Ptr ptr)
{
std::pair<Iterator, bool> res = _handlers.insert(std::make_pair(t, ptr));
if (!res.second)
res.first->second = ptr;
}
void TableCellHandlerFactory::registerFactory(const std::type_info& t, AbstractTableCellHandler::Ptr ptr)
{
registerFactory(Type(t), ptr);
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,256 @@
//
// TableRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TableRenderer.cpp#4 $
//
// Library: ExtJS
// Package: Core
// Module: TableRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TableRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ExtJS/TableCellHandlerFactory.h"
#include "Poco/WebWidgets/Table.h"
#include "Poco/WebWidgets/WebApplication.h"
#include "Poco/WebWidgets/RequestHandler.h"
#include <sstream>
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TableRenderer::TableRenderer()
{
}
TableRenderer::~TableRenderer()
{
}
void TableRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::Table));
const Table* pTable = static_cast<const Poco::WebWidgets::Table*>(pRenderable);
ostr << "new Ext.grid.EditorGridPanel({";
TableRenderer::renderProperties(pTable, context, ostr);
ostr << "})";
}
void TableRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void TableRenderer::renderProperties(const Table* pTable, const RenderContext& context, std::ostream& ostr)
{
Utility::writeRenderableProperties(pTable, ostr);
WebApplication& app = WebApplication::instance();
Renderable::ID id = app.getCurrentPage()->id();
// add an afterEdit handler
// event handlers can be defined in the constructor after the listeners member
//{
// 'afterEdit' : {
// fn: function(obj){obj.row, obj.column, obj.value, tableId}
//},
std::ostringstream uri;
uri << "'" <<app.getURI().toString();
uri << ";"; //mark as AJAX request
uri << RequestHandler::KEY_ID << "=" << id << "&";
uri << Table::FIELD_COL << "='+obj.column+'&";
uri << Table::FIELD_ROW << "='+obj.row+'&" << Table::FIELD_VAL << "='+obj.value";
//obj.commitChanges... hides the red triangle
ostr << ", listeners: {'afteredit':{fn:function(obj){var uri=" << uri.str() << ";obj.grid.getStore().commitChanges();";
ostr << "Ext.Ajax.request({url:uri,";
ostr << "failure:function(){Ext.MessageBox.alert('Status','Failed to write changes back to server.');}});}}},";
renderColumns(pTable, context, ostr);
ostr << ",clicksToEdit:1,store:";
renderStore(pTable, ostr);
app.registerAjaxProcessor(Poco::NumberFormatter::format(id), const_cast<Table*>(pTable));
}
void TableRenderer::renderColumns(const Table* pTable, const RenderContext& context, std::ostream& ostr)
{
//columns: [...]
ostr << "columns:[";
const Table::TableColumns& columns = pTable->getColumns();
Table::TableColumns::const_iterator it = columns.begin();
int i = 0;
for (; it != columns.end(); ++it, ++i)
{
if (i != 0)
ostr << ",";
renderColumn(pTable, *(*it), i, context, ostr);
}
ostr << "]";
}
void TableRenderer::renderColumn(const Table* pTable, const TableColumn& tc, int idx, const RenderContext& context, std::ostream& ostr)
{
static LookAndFeel& laf = Utility::getDefaultRenderers();
// {id:'company', header: "Company", width: 200, sortable: true, dataIndex: 'company'}
// {header: "Last Updated", width: 135, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
ostr << "{";
std::string hdr(Utility::safe(tc.getHeader()));
ostr << "header:'" << hdr << "',dataIndex:'" << idx << "'";
if (tc.getWidth() > 0)
ostr << ",width:" << tc.getWidth();
if (tc.isSortable())
ostr << ",sortable:true";
static TableCellHandlerFactory& fty = TableCellHandlerFactory::instance();
if (tc.getCell())
{
AbstractTableCellHandler::Ptr pHandler = fty.factory(tc.getCell());
if (tc.getCell()->isEditable())
ostr << ",editable:true";
if (tc.getCell()->isEditable() && pHandler->useEditor())
{
ostr << ",editor:";
tc.getCell()->renderHead(context, ostr);
}
if (pHandler->useRenderer())
{
ostr << ",renderer:";
pHandler->writeDynamicData(ostr);
}
}
ostr << "}";
}
void TableRenderer::renderDataModel(const Table* pTable, std::ostream& ostr)
{
//[
//[ ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
//[ ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am']
//]
const TableModel& tm = pTable->getModel();
const Table::TableColumns& tc = pTable->getColumns();
poco_assert_dbg (tc.size() == tm.getColumnCount());
std::size_t colCnt = tm.getColumnCount();
std::size_t rowCnt = tm.getRowCount();
ostr << "[";
for (std::size_t row = 0; row < rowCnt; ++row)
{
if (row != 0)
ostr << ",[";
else
ostr << "[";
for (std::size_t col = 0; col < colCnt; ++col)
{
if (col != 0)
ostr << ",";
//FIXME: how do we distinguish if we want to write something as text or GUIElement?
// Example: Checkbutton can be written as text "true"/"false" or as a CheckButton
// we use the Cell: if we have a Cell set -> complex Type otherwise text
// -> already handled by the renderer!
const Poco::Any& aVal = tm.getValue(row, col);
if (aVal.empty())
ostr << "''";
else
{
//FIXME: we have no type nfo at all, assume string for everything
bool isString = (typeid(std::string) == aVal.type());
Cell::Ptr ptrCell = tc[col]->getCell();
if (isString)
ostr << "'" << RefAnyCast<std::string>(aVal) << "'";
else if (ptrCell)
ostr << tc[col]->getCell()->getFormatter()->format(aVal);
else
; //FIXME:
}
}
ostr << "]";
}
ostr << "]";
}
void TableRenderer::renderStore(const Table* pTable, std::ostream& ostr)
{
//new Ext.data.SimpleStore({
// fields: [
// {name: 'company'},
// {name: 'price', type: 'float'},
// {name: 'change', type: 'float'},
// {name: 'pctChange', type: 'float'},
// {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
// ],
// data: [...]
//});
// we don't know the type, we just have a formatter, the name is always the idx!
// we use the formatter later to set a renderer for a different type than string
const Table::TableColumns& columns = pTable->getColumns();
ostr << "new Ext.data.SimpleStore({fields:[";
Table::TableColumns::const_iterator it = columns.begin();
int i = 0;
for (; it != columns.end(); ++it, ++i)
{
if (i != 0)
ostr << ",";
ostr << "{name:'" << i << "'}";
}
ostr << "],"; // close fields
//Write data
ostr << "data:";
renderDataModel(pTable, ostr);
ostr << "})";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,109 @@
//
// TextEditCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TextEditCellRenderer.cpp#3 $
//
// Library: ExtJS
// Package: Core
// Module: TextEditCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TextEditCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/TextEditCell.h"
#include "Poco/WebWidgets/Control.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/WebApplication.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TextEditCellRenderer::TextEditCellRenderer()
{
}
TextEditCellRenderer::~TextEditCellRenderer()
{
}
void TextEditCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::TextEditCell));
const TextEditCell* pCell = static_cast<const Poco::WebWidgets::TextEditCell*>(pRenderable);
ostr << "new Ext.form.TextArea({";
TextEditCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
if (pCell->getOwner() && !pCell->getOwner()->getName().empty())
{
WebApplication::instance().registerFormProcessor(pCell->getOwner()->getName(), const_cast<TextEditCell*>(pCell));
}
}
void TextEditCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void TextEditCellRenderer::writeCellProperties(const TextEditCell* pCell, std::ostream& ostr, bool writeValue)
{
Utility::writeCellProperties(pCell, ostr);
if (writeValue&& !pCell->getValue().empty())
{
ostr << ", value:'" << Utility::safe(pCell->getString()) << "'";
}
if (!pCell->isEditable())
ostr << ", readOnly:true";
if (pCell->getHeightInPixel() > 0)
ostr << ", height:" << pCell->getHeightInPixel();
if (pCell->getGrow())
ostr << ", grow:true";
if (!pCell->getPlaceHolder().empty())
ostr << ", emptyText:'" << Utility::safe(pCell->getPlaceHolder()) << "'";
//tooltip is not supported by textEdit, add listeners
std::string tooltip (pCell->getToolTip());
if (!tooltip.empty())
ostr << ", listeners: {render: function(c) {Ext.QuickTips.register({target: c.getEl(),text: '" << Utility::safe(tooltip) << "'});}}";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,107 @@
//
// TextFieldCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TextFieldCellRenderer.cpp#6 $
//
// Library: ExtJS
// Package: Core
// Module: TextFieldCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/TextFieldCell.h"
#include "Poco/WebWidgets/Control.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/WebApplication.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TextFieldCellRenderer::TextFieldCellRenderer()
{
}
TextFieldCellRenderer::~TextFieldCellRenderer()
{
}
void TextFieldCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::TextFieldCell));
const TextFieldCell* pCell = static_cast<const Poco::WebWidgets::TextFieldCell*>(pRenderable);
ostr << "new Ext.form.TextField({";
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
if (pCell->getOwner() && !pCell->getOwner()->getName().empty())
{
WebApplication::instance().registerFormProcessor(pCell->getOwner()->getName(), const_cast<TextFieldCell*>(pCell));
}
}
void TextFieldCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void TextFieldCellRenderer::writeCellProperties(const TextFieldCell* pCell, std::ostream& ostr, bool writeValue)
{
Utility::writeCellProperties(pCell, ostr);
if (writeValue&& !pCell->getValue().empty())
{
ostr << ",value:'" << Utility::safe(pCell->getString()) << "'";
}
if (!pCell->isEditable())
ostr << ",readOnly:true";
if (!pCell->getPlaceHolder().empty())
ostr << ",emptyText:'" << Utility::safe(pCell->getPlaceHolder()) << "'";
if (pCell->getMaxLength() > 0)
ostr << ",maxLength:" << pCell->getMaxLength();
//tooltip is not supported by textField, add listeners
std::string tooltip (pCell->getToolTip());
if (!tooltip.empty())
ostr << ",listeners:{render:function(c){Ext.QuickTips.register({target:c.getEl(),text:'" << Utility::safe(tooltip) << "'});}}";
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,101 @@
//
// TimeFieldCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/TimeFieldCellRenderer.cpp#4 $
//
// Library: ExtJS
// Package: Core
// Module: TimeFieldCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/TimeFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/TimeFieldCell.h"
#include "Poco/WebWidgets/WebApplication.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
TimeFieldCellRenderer::TimeFieldCellRenderer()
{
}
TimeFieldCellRenderer::~TimeFieldCellRenderer()
{
}
void TimeFieldCellRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::TimeFieldCell));
const TimeFieldCell* pCell = static_cast<const Poco::WebWidgets::TimeFieldCell*>(pRenderable);
ostr << "new Ext.form.TimeField({";
TimeFieldCellRenderer::writeCellProperties(pCell, ostr);
ostr << "})";
if (pCell->getOwner() && !pCell->getOwner()->getName().empty())
{
WebApplication::instance().registerFormProcessor(pCell->getOwner()->getName(), const_cast<TimeFieldCell*>(pCell));
}
}
void TimeFieldCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void TimeFieldCellRenderer::writeCellProperties(const TimeFieldCell* pCell, std::ostream& ostr)
{
TextFieldCellRenderer::writeCellProperties(pCell, ostr);
TimeField::Format fmt = pCell->getFormat();
static const std::string fmt24h("'H:i'");
static const std::string fmt24hs("'H:i:s'");
static const std::string fmtAmPms("'h:i:s A'");
if (fmt == TimeField::FMT_24H)
ostr << ",format:" << fmt24h;
else if (fmt == TimeField::FMT_24H_WITHSECONDS)
ostr << ",format:" << fmt24hs;
else if (fmt == TimeField::FMT_AMPM_WITHSECONDS)
ostr << ",format:" << fmtAmPms;
else
; // this is the default
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,81 @@
//
// ToggleButtonCellRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/ToggleButtonCellRenderer.cpp#4 $
//
// Library: ExtJS
// Package: Core
// Module: ToggleButtonCellRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/ToggleButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/WebApplication.h"
#include "Poco/WebWidgets/ToggleButtonCell.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
ToggleButtonCellRenderer::ToggleButtonCellRenderer()
{
}
ToggleButtonCellRenderer::~ToggleButtonCellRenderer()
{
}
void ToggleButtonCellRenderer::renderBody(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
}
void ToggleButtonCellRenderer::renderProperties(const ToggleButtonCell* pToggleButtonCell, std::ostream& ostr)
{
if (!pToggleButtonCell->getLabel().empty())
ostr << "boxLabel:'" << Utility::safe(pToggleButtonCell->getLabel()) << "',";
ostr << "checked:" << (pToggleButtonCell->isChecked()?"true":"false") << ",";
Utility::writeCellProperties(pToggleButtonCell, ostr);
//tooltip is not supported by togglebutton
std::string tooltip (pToggleButtonCell->getToolTip());
if (!tooltip.empty())
ostr << ",listeners:{render:function(c){c.getEl().dom.qtip='" << Utility::safe(tooltip) << "'; c.getEl().dom.qclass = 'x-form-tip';}}";
if (pToggleButtonCell->getOwner() && !pToggleButtonCell->getOwner()->getName().empty())
{
WebApplication::instance().registerFormProcessor(pToggleButtonCell->getOwner()->getName(), const_cast<ToggleButtonCell*>(pToggleButtonCell));
}
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,382 @@
//
// Utility.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/Utility.cpp#17 $
//
// Library: ExtJS
// Package: Core
// Module: Utility
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/ExtJS/LabelRenderer.h"
#include "Poco/WebWidgets/ExtJS/PageRenderer.h"
#include "Poco/WebWidgets/ExtJS/ButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/SubmitButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/CollapsibleRenderer.h"
#include "Poco/WebWidgets/ExtJS/FormRenderer.h"
#include "Poco/WebWidgets/ExtJS/FrameRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TimeFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/DateFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/PasswordFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/NumberFieldCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/ComboBoxCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/ImageButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TextEditCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/CheckButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/RadioButtonCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/GridLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/PanelRenderer.h"
#include "Poco/WebWidgets/ExtJS/HorizontalLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/VerticalLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/ImageRenderer.h"
#include "Poco/WebWidgets/ExtJS/TabViewRenderer.h"
#include "Poco/WebWidgets/ExtJS/ListBoxCellRenderer.h"
#include "Poco/WebWidgets/ExtJS/TableRenderer.h"
#include "Poco/WebWidgets/Label.h"
#include "Poco/WebWidgets/Page.h"
#include "Poco/WebWidgets/ButtonCell.h"
#include "Poco/WebWidgets/SubmitButtonCell.h"
#include "Poco/WebWidgets/Collapsible.h"
#include "Poco/WebWidgets/Form.h"
#include "Poco/WebWidgets/Frame.h"
#include "Poco/WebWidgets/Panel.h"
#include "Poco/WebWidgets/Cell.h"
#include "Poco/WebWidgets/View.h"
#include "Poco/WebWidgets/GridLayout.h"
#include "Poco/WebWidgets/TextFieldCell.h"
#include "Poco/WebWidgets/TimeFieldCell.h"
#include "Poco/WebWidgets/DateFieldCell.h"
#include "Poco/WebWidgets/PasswordFieldCell.h"
#include "Poco/WebWidgets/NumberFieldCell.h"
#include "Poco/WebWidgets/ComboBoxCell.h"
#include "Poco/WebWidgets/ImageButtonCell.h"
#include "Poco/WebWidgets/TextEditCell.h"
#include "Poco/WebWidgets/CheckButtonCell.h"
#include "Poco/WebWidgets/RadioButtonCell.h"
#include "Poco/WebWidgets/HorizontalLayout.h"
#include "Poco/WebWidgets/VerticalLayout.h"
#include "Poco/WebWidgets/Image.h"
#include "Poco/WebWidgets/TabView.h"
#include "Poco/WebWidgets/ListBoxCell.h"
#include "Poco/WebWidgets/Table.h"
#include "Poco/String.h"
#include "Poco/DateTimeFormat.h"
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
void Utility::initialize(LookAndFeel::Ptr ptr)
{
ptr->registerRenderer(typeid(Label), new LabelRenderer());
ptr->registerRenderer(typeid(Page), new PageRenderer());
ptr->registerRenderer(typeid(ButtonCell), new ButtonCellRenderer());
ptr->registerRenderer(typeid(SubmitButtonCell), new SubmitButtonCellRenderer());
ptr->registerRenderer(typeid(Form), new FormRenderer());
ptr->registerRenderer(typeid(Frame), new FrameRenderer());
ptr->registerRenderer(typeid(Collapsible), new CollapsibleRenderer());
ptr->registerRenderer(typeid(TextFieldCell), new TextFieldCellRenderer());
ptr->registerRenderer(typeid(TimeFieldCell), new TimeFieldCellRenderer());
ptr->registerRenderer(typeid(DateFieldCell), new DateFieldCellRenderer());
ptr->registerRenderer(typeid(PasswordFieldCell), new PasswordFieldCellRenderer());
ptr->registerRenderer(typeid(NumberFieldCell), new NumberFieldCellRenderer());
ptr->registerRenderer(typeid(ComboBoxCell), new ComboBoxCellRenderer());
ptr->registerRenderer(typeid(ImageButtonCell), new ImageButtonCellRenderer());
ptr->registerRenderer(typeid(TextEditCell), new TextEditCellRenderer());
ptr->registerRenderer(typeid(CheckButtonCell), new CheckButtonCellRenderer());
ptr->registerRenderer(typeid(RadioButtonCell), new RadioButtonCellRenderer());
ptr->registerRenderer(typeid(ListBoxCell), new ListBoxCellRenderer());
ptr->registerRenderer(typeid(GridLayout), new GridLayoutRenderer());
ptr->registerRenderer(typeid(Panel), new PanelRenderer());
ptr->registerRenderer(typeid(HorizontalLayout), new HorizontalLayoutRenderer());
ptr->registerRenderer(typeid(VerticalLayout), new VerticalLayoutRenderer());
ptr->registerRenderer(typeid(Image), new ImageRenderer());
ptr->registerRenderer(typeid(TabView), new TabViewRenderer());
ptr->registerRenderer(typeid(Table), new TableRenderer());
}
const std::string& Utility::getTmpID()
{
static const std::string tmp("tmp");
return tmp;
}
void Utility::writeRenderableProperties(const Renderable* pRend, std::ostream& ostr)
{
ostr << "id:'" << pRend->id() << "'";
}
void Utility::writeRenderableProperties(const std::string& id, std::ostream& ostr)
{
if (!id.empty())
ostr << "id:'" << id << "'";
}
void Utility::writeCellProperties(const Cell* pCell, std::ostream& ostr, bool writeId)
{
if (writeId)
writeRenderableProperties(pCell, ostr);
//don't support label for cell, keep this separate
ostr << ",hideLabel:true";
if (!pCell->isEnabled())
ostr << ",disabled:true";
View* pOwner = pCell->getOwner();
if (pOwner)
{
if (!pOwner->getName().empty())
ostr << ",name:'" << pOwner->getName() << "'";
if (pOwner->getWidth() != 0)
ostr << ",width:" << pOwner->getWidth();
if (pOwner->getHeight() != 0)
ostr << ",height:" << pOwner->getHeight();
}
}
void Utility::writeCellProperties(const std::string& id,
const std::string& disabled,
const std::string& name,
const std::string& width,
const std::string& height,
std::ostream& ostr)
{
writeRenderableProperties(id, ostr);
//don't support label for cell, keep this separate
if (!id.empty())
ostr << ",";
ostr << "hideLabel:true,";
if (!disabled.empty())
ostr << ",disabled:" << disabled;
if (!name.empty())
ostr << ",name:" << name;
if (!width.empty())
ostr << ",width:" << width;
if (!height.empty())
ostr << ",height:" << height;
}
std::string Utility::safe(const std::string& str)
{
std::string safe(Poco::replace(str, "\\", "\\\\"));
Poco::replaceInPlace(safe, "'", "\\'");
return safe;
}
std::string Utility::convertPocoDateToPHPDate(const std::string& dateTimeFmt)
{
if (dateTimeFmt == Poco::DateTimeFormat::ISO8601_FORMAT)
return "c";
std::string result;
bool inPercent = false;
for (int i = 0; i < dateTimeFmt.length(); ++i)
{
if (inPercent)
{
convertPocoDateToPHPDate(dateTimeFmt[i], result);
inPercent = false;
}
else
{
if (dateTimeFmt[i] == '%')
{
poco_assert_dbg(!inPercent);
inPercent = true;
}
else
escapeCharForPHP(dateTimeFmt[i], result);
}
}
return result;
}
void Utility::convertPocoDateToPHPDate(char in, std::string& result)
{
//Not supported in POCO:
// *??->w - Numeric representation of the day of the week (1-7)
// *??->z - Day of the year starting with zero for jan the 1st (0 - 364/365)
// *??->W - ISO-8601 week number of year, weeks starting on Monday (01-53)
// *??->t - Number of days in the given month (28-31)
// *??->L - 1 for a yeap lear, 0 otherwise
// *??->o - ISO-8601 year number but if the ISO week number (W) belongs to the previous or next year, that year is used instead
// *??->g - 12-hour format of an hour without leading zeros
// *??->G - 24-hour format of an hour without leading zeros
// *??->T - Timezone abbreviation of the machine running the code, examples: EST, MDT, PDT
// *??->Z - Timezone offset in seconds (negative if west of UTC, positive if east) -43200 to 50400
// *??->c - ISO 8601 date, should be handled in the caller must not occur here
// *??->U - Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) 1193432466 or -2138434463
// * %w->D - abbreviated weekday (Mon, Tue, ...)
// * %W->l - full weekday (Monday, Tuesday, ...)
// * %b->M - abbreviated month (Jan, Feb, ...)
// * %B->F - full month (January, February, ...)
// * %d->d - zero-padded day of month (01 .. 31)
// * %e->j - day of month (1 .. 31)
// * %m->m - zero-padded month (01 .. 12)
// * %n->n - month (1 .. 12)
// * %y->y - year without century (70)
// * %Y->Y - year with century (1970)
// * %H->H - hour (00 .. 23)
// * %h->h - hour (00 .. 12)
// * %a->a - am/pm
// * %A->A - AM/PM
// * %M->i - minute (00 .. 59)
// * %S->s - second (00 .. 59)
// * %i->u - millisecond (000 .. 999)
// * %z->P - time zone differential in ISO 8601 format (Z or +NN.NN).
// * %Z->O - time zone differential in RFC format (GMT or +NNNN)
// * %%->% - percent sign
//Not supported in PHP/extjs
// * %f - space-padded day of month ( 1 .. 31), solution: map this to zeropadded: d
// * %o - space-padded month ( 1 .. 12), solution: map this to zeropadded: m
// * %c - centisecond (0 .. 9), solution use millisecond: u
static const char table[]={
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08', '\x09', '\x0A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0F',
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F',
' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?',
'@', 'A', 'F', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'i', 'N', 'O',
'P', 'Q', 'R', 's', 'T', 'U', 'V', 'l', 'X', 'Y', 'O', '[', '\\', ']', '^', '_',
'`', 'a', 'M', 'u', 'd', 'j', 'f', 'g', 'h', 'u', 'j', 'k', 'l', 'm', 'n', 'm',
'p', 'q', 'r', 's', 't', 'u', 'v', 'D', 'x', 'y', 'P', '{', '|', '}', '~', '\x7F'};
if (in < 0 || in > 127)
{
result.append(1, in);
return;
}
result.append(1, table[in]);
}
void Utility::escapeCharForPHP(char in, std::string& result)
{
// lowest ascii value is 32 ' '
static const char table[]={
'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
'0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0',
'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
'0', '1', '0', '0', '1', '0', '1', '1', '1', '0', '0', '0', '1', '1', '1', '1',
'1', '0', '0', '1', '1', '1', '0', '1', '0', '1', '1', '0', '0', '0', '0', '0',
'0', '1', '0', '1', '1', '0', '0', '1', '1', '1', '1', '0', '1', '1', '1', '1',
'0', '0', '0', '1', '1', '1', '0', '1', '0', '1', '1', '0', '0', '0', '0', '0'};
if (in < 0 || in > 127)
{
result.append(1, in);
return;
}
if (table[in] == '1')
{
result.append(1, '\\');
}
result.append(1, in);
}
void Utility::convertPHPDateToPocoDate(char in, std::string& result)
{
static const char table[]={
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08', '\x09', '\x0A', '\x0B', '\x0C', '\x0D', '\x0E', '\x0F',
'\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1A', '\x1B', '\x1C', '\x1D', '\x1E', '\x1F',
' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?',
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\x7F'};
if (in < 0 || in > 127)
{
result.append(1, in);
return;
}
}
LookAndFeel::Ptr Utility::createDefault()
{
LookAndFeel::Ptr ptr = new LookAndFeel();
Utility::initialize(ptr);
return ptr;
}
LookAndFeel& Utility::getDefaultRenderers()
{
static LookAndFeel::Ptr ptr = createDefault();
return *ptr;
}
Form::Ptr Utility::insideForm(const View* pChild)
{
Form::Ptr ptr;
while (pChild && !ptr)
{
View::Ptr ptrView = pChild->parent();
ptr = ptrView.cast<Form>();
pChild = ptrView;
}
return ptr;
}
Form::Ptr Utility::insideForm(const Cell* pChild)
{
return Utility::insideForm(pChild->getOwner());
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,70 @@
//
// VerticalLayoutRenderer.cpp
//
// $Id: //poco/Main/WebWidgets/ExtJS/src/VerticalLayoutRenderer.cpp#2 $
//
// Library: ExtJS
// Package: Core
// Module: VerticalLayoutRenderer
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#include "Poco/WebWidgets/ExtJS/VerticalLayoutRenderer.h"
#include "Poco/WebWidgets/ExtJS/Utility.h"
#include "Poco/WebWidgets/VerticalLayout.h"
#include <sstream>
namespace Poco {
namespace WebWidgets {
namespace ExtJS {
VerticalLayoutRenderer::VerticalLayoutRenderer()
{
}
VerticalLayoutRenderer::~VerticalLayoutRenderer()
{
}
void VerticalLayoutRenderer::renderHead(const Renderable* pRenderable, const RenderContext& context, std::ostream& ostr)
{
poco_assert_dbg (pRenderable != 0);
poco_assert_dbg (pRenderable->type() == typeid(Poco::WebWidgets::VerticalLayout));
const VerticalLayout* pLayout = static_cast<const Poco::WebWidgets::VerticalLayout*>(pRenderable);
// a vertical layout is a table with one column
std::string layoutConfig("{columns:1}");
std::string layout("table");
LayoutRenderer::renderLayoutHead(pLayout, context, ostr, layout, layoutConfig);
}
} } } // namespace Poco::WebWidgets::ExtJS

View File

@ -0,0 +1,18 @@
#
# Makefile
#
# $Id: //poco/Main/template/TestSuite.make#3 $
#
# Makefile for Poco ExtJS testsuite
#
include $(POCO_BASE)/build/rules/global
objects = ExtJSTestSuite Driver \
<SourceFilesHere>
target = testrunner
target_version = 1
target_libs = PocoExtJS PocoFoundation CppUnit
include $(POCO_BASE)/build/rules/exec

View File

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="TestSuite"
ProjectGUID="{ab43a995-70fa-4297-bd01-6c88938aa86d}"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="CppUnitd.lib WinTestRunnerd.lib PocoFoundationd.lib "
OutputFile="bin/TestSuited.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\lib"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="bin/TestSuited.pdb"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="..\include;..\..\Foundation\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
StringPooling="TRUE"
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="CppUnit.lib WinTestRunner.lib PocoFoundation.lib"
OutputFile="bin/TestSuite.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="..\..\lib"
GenerateDebugInformation="FALSE"
ProgramDatabaseFile=""
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="ExtJS"
Filter="">
<Filter
Name="Header Files"
Filter="">
</Filter>
<Filter
Name="Source Files"
Filter="">
</Filter>
</Filter>
<Filter
Name="_Suite"
Filter="">
<Filter
Name="Header Files"
Filter="">
<File
RelativePath=".\src\ExtJSTestSuite.h">
</File>
</Filter>
<Filter
Name="Source Files"
Filter="">
<File
RelativePath=".\src\ExtJSTestSuite.cpp">
</File>
</Filter>
</Filter>
<Filter
Name="_Driver"
Filter="">
<Filter
Name="Source Files"
Filter="">
<File
RelativePath=".\src\WinDriver.cpp">
</File>
</Filter>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,251 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="TestSuite"
ProjectGUID="{ab43a995-70fa-4297-bd01-6c88938aa86d}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\debug_shared"
IntermediateDirectory="obj\debug_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include;..\..\..\Foundation\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\WebWidgets\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="CppUnitd.lib WinTestRunnerd.lib PocoFoundationd.lib "
OutputFile="bin/TestSuited.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\..\lib"
GenerateDebugInformation="true"
ProgramDatabaseFile="bin/TestSuited.pdb"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\release_shared"
IntermediateDirectory="obj\release_shared"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\include;..\..\..\Foundation\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\WebWidgets\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_DLL;WINVER=0x0500"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="CppUnit.lib WinTestRunner.lib PocoFoundation.lib"
OutputFile="bin/TestSuite.exe"
LinkIncremental="1"
AdditionalLibraryDirectories="..\..\..\lib"
GenerateDebugInformation="false"
ProgramDatabaseFile=""
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="ExtJS"
>
<Filter
Name="Header Files"
>
<File
RelativePath=".\src\ExtJSTest.h"
>
</File>
</Filter>
<Filter
Name="Source Files"
>
<File
RelativePath=".\src\ExtJSTest.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="_Suite"
>
<Filter
Name="Header Files"
>
<File
RelativePath=".\src\ExtJSTestSuite.h"
>
</File>
</Filter>
<Filter
Name="Source Files"
>
<File
RelativePath=".\src\ExtJSTestSuite.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="_Driver"
>
<Filter
Name="Source Files"
>
<File
RelativePath=".\src\WinDriver.cpp"
>
</File>
</Filter>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,551 @@
Array.prototype.contains = function(element) {
return this.indexOf(element) !== -1;
};
Ext.namespace("Ext.ux");
/**
* @class Ext.ux.DDView
* A DnD enabled version of Ext.View.
* @param {Element/String} container The Element in which to create the View.
* @param {String} tpl The template string used to create the markup for each element of the View
* @param {Object} config The configuration properties. These include all the config options of
* {@link Ext.View} plus some specific to this class.<br>
* <p>
* Drag/drop is implemented by adding {@link Ext.data.Record}s to the target DDView. If copying is
* not being performed, the original {@link Ext.data.Record} is removed from the source DDView.<br>
* <p>
* The following extra CSS rules are needed to provide insertion point highlighting:<pre><code>
.x-view-drag-insert-above {
border-top:1px dotted #3366cc;
}
.x-view-drag-insert-below {
border-bottom:1px dotted #3366cc;
}
</code></pre>
*
*/
Ext.ux.DDView = function(config) {
if (!config.itemSelector) {
var tpl = config.tpl;
if (this.classRe.test(tpl)) {
config.tpl = tpl.replace(this.classRe, 'class=$1x-combo-list-item $2$1');
}
else {
config.tpl = tpl.replace(this.tagRe, '$1 class="x-combo-list-item" $2');
}
config.itemSelector = ".x-combo-list-item";
}
Ext.ux.DDView.superclass.constructor.call(this, Ext.apply(config, {
border: false
}));
};
Ext.extend(Ext.ux.DDView, Ext.DataView, {
/** @cfg {String/Array} dragGroup The ddgroup name(s) for the View's DragZone. */
/** @cfg {String/Array} dropGroup The ddgroup name(s) for the View's DropZone. */
/** @cfg {Boolean} copy Causes drag operations to copy nodes rather than move. */
/** @cfg {Boolean} allowCopy Causes ctrl/drag operations to copy nodes rather than move. */
sortDir: 'ASC',
isFormField: true,
classRe: /class=(['"])(.*)\1/,
tagRe: /(<\w*)(.*?>)/,
reset: Ext.emptyFn,
clearInvalid: Ext.form.Field.prototype.clearInvalid,
msgTarget: 'qtip',
afterRender: function() {
Ext.ux.DDView.superclass.afterRender.call(this);
if (this.dragGroup) {
this.setDraggable(this.dragGroup.split(","));
}
if (this.dropGroup) {
this.setDroppable(this.dropGroup.split(","));
}
if (this.deletable) {
this.setDeletable();
}
this.isDirtyFlag = false;
this.addEvents(
"drop"
);
},
validate: function() {
return true;
},
destroy: function() {
this.purgeListeners();
this.getEl().removeAllListeners();
this.getEl().remove();
if (this.dragZone) {
if (this.dragZone.destroy) {
this.dragZone.destroy();
}
}
if (this.dropZone) {
if (this.dropZone.destroy) {
this.dropZone.destroy();
}
}
},
/** Allows this class to be an Ext.form.Field so it can be found using {@link Ext.form.BasicForm#findField}. */
getName: function() {
return this.name;
},
/** Loads the View from a JSON string representing the Records to put into the Store. */
setValue: function(v) {
if (!this.store) {
throw "DDView.setValue(). DDView must be constructed with a valid Store";
}
var data = {};
data[this.store.reader.meta.root] = v ? [].concat(v) : [];
this.store.proxy = new Ext.data.MemoryProxy(data);
this.store.load();
},
/** @return {String} a parenthesised list of the ids of the Records in the View. */
getValue: function() {
var result = '(';
this.store.each(function(rec) {
result += rec.id + ',';
});
return result.substr(0, result.length - 1) + ')';
},
getIds: function() {
var i = 0, result = new Array(this.store.getCount());
this.store.each(function(rec) {
result[i++] = rec.id;
});
return result;
},
isDirty: function() {
return this.isDirtyFlag;
},
/**
* Part of the Ext.dd.DropZone interface. If no target node is found, the
* whole Element becomes the target, and this causes the drop gesture to append.
*/
getTargetFromEvent : function(e) {
var target = e.getTarget();
while ((target !== null) && (target.parentNode != this.el.dom)) {
target = target.parentNode;
}
if (!target) {
target = this.el.dom.lastChild || this.el.dom;
}
return target;
},
/**
* Create the drag data which consists of an object which has the property "ddel" as
* the drag proxy element.
*/
getDragData : function(e) {
var target = this.findItemFromChild(e.getTarget());
if(target) {
if (!this.isSelected(target)) {
delete this.ignoreNextClick;
this.onItemClick(target, this.indexOf(target), e);
this.ignoreNextClick = true;
}
var dragData = {
sourceView: this,
viewNodes: [],
records: [],
copy: this.copy || (this.allowCopy && e.ctrlKey)
};
if (this.getSelectionCount() == 1) {
var i = this.getSelectedIndexes()[0];
var n = this.getNode(i);
dragData.viewNodes.push(dragData.ddel = n);
dragData.records.push(this.store.getAt(i));
dragData.repairXY = Ext.fly(n).getXY();
} else {
dragData.ddel = document.createElement('div');
dragData.ddel.className = 'multi-proxy';
this.collectSelection(dragData);
}
return dragData;
}
return false;
},
// override the default repairXY.
getRepairXY : function(e){
return this.dragData.repairXY;
},
/** Put the selections into the records and viewNodes Arrays. */
collectSelection: function(data) {
data.repairXY = Ext.fly(this.getSelectedNodes()[0]).getXY();
if (this.preserveSelectionOrder === true) {
Ext.each(this.getSelectedIndexes(), function(i) {
var n = this.getNode(i);
var dragNode = n.cloneNode(true);
dragNode.id = Ext.id();
data.ddel.appendChild(dragNode);
data.records.push(this.store.getAt(i));
data.viewNodes.push(n);
}, this);
} else {
var i = 0;
this.store.each(function(rec){
if (this.isSelected(i)) {
var n = this.getNode(i);
var dragNode = n.cloneNode(true);
dragNode.id = Ext.id();
data.ddel.appendChild(dragNode);
data.records.push(this.store.getAt(i));
data.viewNodes.push(n);
}
i++;
}, this);
}
},
/** Specify to which ddGroup items in this DDView may be dragged. */
setDraggable: function(ddGroup) {
if (ddGroup instanceof Array) {
Ext.each(ddGroup, this.setDraggable, this);
return;
}
if (this.dragZone) {
this.dragZone.addToGroup(ddGroup);
} else {
this.dragZone = new Ext.dd.DragZone(this.getEl(), {
containerScroll: true,
ddGroup: ddGroup
});
// Draggability implies selection. DragZone's mousedown selects the element.
if (!this.multiSelect) { this.singleSelect = true; }
// Wire the DragZone's handlers up to methods in *this*
this.dragZone.getDragData = this.getDragData.createDelegate(this);
this.dragZone.getRepairXY = this.getRepairXY;
this.dragZone.onEndDrag = this.onEndDrag;
}
},
/** Specify from which ddGroup this DDView accepts drops. */
setDroppable: function(ddGroup) {
if (ddGroup instanceof Array) {
Ext.each(ddGroup, this.setDroppable, this);
return;
}
if (this.dropZone) {
this.dropZone.addToGroup(ddGroup);
} else {
this.dropZone = new Ext.dd.DropZone(this.getEl(), {
owningView: this,
containerScroll: true,
ddGroup: ddGroup
});
// Wire the DropZone's handlers up to methods in *this*
this.dropZone.getTargetFromEvent = this.getTargetFromEvent.createDelegate(this);
this.dropZone.onNodeEnter = this.onNodeEnter.createDelegate(this);
this.dropZone.onNodeOver = this.onNodeOver.createDelegate(this);
this.dropZone.onNodeOut = this.onNodeOut.createDelegate(this);
this.dropZone.onNodeDrop = this.onNodeDrop.createDelegate(this);
}
},
/** Decide whether to drop above or below a View node. */
getDropPoint : function(e, n, dd){
if (n == this.el.dom) { return "above"; }
var t = Ext.lib.Dom.getY(n), b = t + n.offsetHeight;
var c = t + (b - t) / 2;
var y = Ext.lib.Event.getPageY(e);
if(y <= c) {
return "above";
}else{
return "below";
}
},
isValidDropPoint: function(pt, n, data) {
if (!data.viewNodes || (data.viewNodes.length != 1)) {
return true;
}
var d = data.viewNodes[0];
if (d == n) {
return false;
}
if ((pt == "below") && (n.nextSibling == d)) {
return false;
}
if ((pt == "above") && (n.previousSibling == d)) {
return false;
}
return true;
},
onNodeEnter : function(n, dd, e, data){
if (this.highlightColor && (data.sourceView != this)) {
this.el.highlight(this.highlightColor);
}
return false;
},
onNodeOver : function(n, dd, e, data){
var dragElClass = this.dropNotAllowed;
var pt = this.getDropPoint(e, n, dd);
if (this.isValidDropPoint(pt, n, data)) {
if (this.appendOnly || this.sortField) {
return "x-tree-drop-ok-below";
}
// set the insert point style on the target node
if (pt) {
var targetElClass;
if (pt == "above"){
dragElClass = n.previousSibling ? "x-tree-drop-ok-between" : "x-tree-drop-ok-above";
targetElClass = "x-view-drag-insert-above";
} else {
dragElClass = n.nextSibling ? "x-tree-drop-ok-between" : "x-tree-drop-ok-below";
targetElClass = "x-view-drag-insert-below";
}
if (this.lastInsertClass != targetElClass){
Ext.fly(n).replaceClass(this.lastInsertClass, targetElClass);
this.lastInsertClass = targetElClass;
}
}
}
return dragElClass;
},
onNodeOut : function(n, dd, e, data){
this.removeDropIndicators(n);
},
onNodeDrop : function(n, dd, e, data){
if (this.fireEvent("drop", this, n, dd, e, data) === false) {
return false;
}
var pt = this.getDropPoint(e, n, dd);
var insertAt = (this.appendOnly || (n == this.el.dom)) ? this.store.getCount() : n.viewIndex;
if (pt == "below") {
insertAt++;
}
// Validate if dragging within a DDView
if (data.sourceView == this) {
// If the first element to be inserted below is the target node, remove it
if (pt == "below") {
if (data.viewNodes[0] == n) {
data.viewNodes.shift();
}
} else { // If the last element to be inserted above is the target node, remove it
if (data.viewNodes[data.viewNodes.length - 1] == n) {
data.viewNodes.pop();
}
}
// Nothing to drop...
if (!data.viewNodes.length) {
return false;
}
// If we are moving DOWN, then because a store.remove() takes place first,
// the insertAt must be decremented.
if (insertAt > this.store.indexOf(data.records[0])) {
insertAt--;
}
}
// Dragging from a Tree. Use the Tree's recordFromNode function.
if (data.node instanceof Ext.tree.TreeNode) {
var r = data.node.getOwnerTree().recordFromNode(data.node);
if (r) {
data.records = [ r ];
}
}
if (!data.records) {
alert("Programming problem. Drag data contained no Records");
return false;
}
for (var i = 0; i < data.records.length; i++) {
var r = data.records[i];
var dup = this.store.getById(r.id);
if (dup && (dd != this.dragZone)) {
if(!this.allowDup && !this.allowTrash){
Ext.fly(this.getNode(this.store.indexOf(dup))).frame("red", 1);
return true
}
var x=new Ext.data.Record();
r.id=x.id;
delete x;
}
if (data.copy) {
this.store.insert(insertAt++, r.copy());
} else {
if (data.sourceView) {
data.sourceView.isDirtyFlag = true;
data.sourceView.store.remove(r);
}
if(!this.allowTrash)this.store.insert(insertAt++, r);
}
if(this.sortField){
this.store.sort(this.sortField, this.sortDir);
}
this.isDirtyFlag = true;
}
this.dragZone.cachedTarget = null;
return true;
},
// Ensure the multi proxy is removed
onEndDrag: function(data, e) {
var d = Ext.get(this.dragData.ddel);
if (d && d.hasClass("multi-proxy")) {
d.remove();
//delete this.dragData.ddel;
}
},
removeDropIndicators : function(n){
if(n){
Ext.fly(n).removeClass([
"x-view-drag-insert-above",
"x-view-drag-insert-left",
"x-view-drag-insert-right",
"x-view-drag-insert-below"]);
this.lastInsertClass = "_noclass";
}
},
/**
* Utility method. Add a delete option to the DDView's context menu.
* @param {String} imageUrl The URL of the "delete" icon image.
*/
setDeletable: function(imageUrl) {
if (!this.singleSelect && !this.multiSelect) {
this.singleSelect = true;
}
var c = this.getContextMenu();
this.contextMenu.on("itemclick", function(item) {
switch (item.id) {
case "delete":
this.remove(this.getSelectedIndexes());
break;
}
}, this);
this.contextMenu.add({
icon: imageUrl || AU.resolveUrl("/images/delete.gif"),
id: "delete",
text: AU.getMessage("deleteItem")
});
},
/** Return the context menu for this DDView. */
getContextMenu: function() {
if (!this.contextMenu) {
// Create the View's context menu
this.contextMenu = new Ext.menu.Menu({
id: this.id + "-contextmenu"
});
this.el.on("contextmenu", this.showContextMenu, this);
}
return this.contextMenu;
},
disableContextMenu: function() {
if (this.contextMenu) {
this.el.un("contextmenu", this.showContextMenu, this);
}
},
showContextMenu: function(e, item) {
item = this.findItemFromChild(e.getTarget());
if (item) {
e.stopEvent();
this.select(this.getNode(item), this.multiSelect && e.ctrlKey, true);
this.contextMenu.showAt(e.getXY());
}
},
/**
* Remove {@link Ext.data.Record}s at the specified indices.
* @param {Array/Number} selectedIndices The index (or Array of indices) of Records to remove.
*/
remove: function(selectedIndices) {
selectedIndices = [].concat(selectedIndices);
for (var i = 0; i < selectedIndices.length; i++) {
var rec = this.store.getAt(selectedIndices[i]);
this.store.remove(rec);
}
},
/**
* Double click fires the event, but also, if this is draggable, and there is only one other
* related DropZone that is in another DDView, it drops the selected node on that DDView.
*/
onDblClick : function(e){
var item = this.findItemFromChild(e.getTarget());
if(item){
if (this.fireEvent("dblclick", this, this.indexOf(item), item, e) === false) {
return false;
}
if (this.dragGroup) {
var targets = Ext.dd.DragDropMgr.getRelated(this.dragZone, true);
// Remove instances of this View's DropZone
while (targets.contains(this.dropZone)) {
targets.remove(this.dropZone);
}
// If there's only one other DropZone, and it is owned by a DDView, then drop it in
if ((targets.length == 1) && (targets[0].owningView)) {
this.dragZone.cachedTarget = null;
var el = Ext.get(targets[0].getEl());
var box = el.getBox(true);
targets[0].onNodeDrop(el.dom, {
target: el.dom,
xy: [box.x, box.y + box.height - 1]
}, null, this.getDragData(e));
}
}
}
},
onItemClick : function(item, index, e){
// The DragZone's mousedown->getDragData already handled selection
if (this.ignoreNextClick) {
delete this.ignoreNextClick;
return;
}
if(this.fireEvent("beforeclick", this, index, item, e) === false){
return false;
}
if(this.multiSelect || this.singleSelect){
if(this.multiSelect && e.shiftKey && this.lastSelection){
this.select(this.getNodes(this.indexOf(this.lastSelection), index), false);
} else if (this.isSelected(item) && e.ctrlKey) {
this.deselect(item);
}else{
this.deselect(item);
this.select(item, this.multiSelect && e.ctrlKey);
this.lastSelection = item;
}
e.preventDefault();
}
return true;
}
});

View File

@ -0,0 +1,19 @@
.ux-mselect{
overflow:auto;
background:white;
position:relative; /* for calculating scroll offsets */
zoom:1;
overflow:auto;
}
.ux-mselect-item{
font:normal 12px tahoma, arial, helvetica, sans-serif;
padding:2px;
border:1px solid #fff;
white-space: nowrap;
cursor:pointer;
}
.ux-mselect-selected{
border:1px dotted #a3bae9 !important;
background:#DFE8F6;
cursor:pointer;
}

View File

@ -0,0 +1,536 @@
//version 3.0
Ext.ux.Multiselect = Ext.extend(Ext.form.Field, {
store:null,
dataFields:[],
data:[],
width:100,
height:100,
displayField:0,
valueField:1,
allowBlank:true,
minLength:0,
maxLength:Number.MAX_VALUE,
blankText:Ext.form.TextField.prototype.blankText,
minLengthText:'Minimum {0} item(s) required',
maxLengthText:'Maximum {0} item(s) allowed',
copy:false,
allowDup:false,
allowTrash:false,
legend:null,
focusClass:undefined,
delimiter:',',
view:null,
dragGroup:null,
dropGroup:null,
tbar:null,
appendOnly:false,
sortField:null,
sortDir:'ASC',
initVal:null,
defaultAutoCreate : {tag: "div"},
initComponent: function(){
Ext.ux.Multiselect.superclass.initComponent.call(this);
this.addEvents({
'dblclick' : true,
'click' : true,
'change' : true,
'drop' : true
});
},
onRender: function(ct, position){
var fs, cls, tpl;
Ext.ux.Multiselect.superclass.onRender.call(this, ct, position);
cls = 'ux-mselect';
fs = new Ext.form.FieldSet({
renderTo:this.el,
title:this.legend,
height:this.height,
width:this.width,
style:"padding:1px;",
tbar:this.tbar
});
if(!this.legend) { var e = fs.el.down('.'+fs.headerCls); if(e) {e.remove();}}
fs.body.addClass(cls);
tpl = '<tpl for="."><div class="' + cls + '-item';
if(Ext.isIE || Ext.isIE7)tpl+='" unselectable=on';
else tpl+=' x-unselectable"';
tpl+='>{' + this.displayField + '}</div></tpl>';
if(!this.store){
this.store = new Ext.data.SimpleStore({
fields: this.dataFields,
data : this.data
});
}
this.view = new Ext.ux.DDView({
multiSelect: true, store: this.store, selectedClass: cls+"-selected", tpl:tpl,
allowDup:this.allowDup, copy: this.copy, allowTrash: this.allowTrash,
dragGroup: this.dragGroup, dropGroup: this.dropGroup, itemSelector:"."+cls+"-item",
isFormField:false, applyTo:fs.body, appendOnly:this.appendOnly,
sortField:this.sortField, sortDir:this.sortDir
});
fs.add(this.view);
this.view.on('click', this.onViewClick, this);
this.view.on('beforeClick', this.onViewBeforeClick, this);
this.view.on('dblclick', this.onViewDblClick, this);
this.view.on('drop', function(ddView, n, dd, e, data){
return this.fireEvent("drop", ddView, n, dd, e, data);
}, this);
this.hiddenName = this.name;
var hiddenTag={tag: "input", type: "hidden", value: "", name:this.name};
if (this.isFormField) {
this.hiddenField = this.el.createChild(hiddenTag);
} else {
this.hiddenField = Ext.get(document.body).createChild(hiddenTag);
}
if (this.initVal != null)
{
this.setValue(this.initVal);
this.initVal = null;
}
fs.doLayout();
},
initValue:Ext.emptyFn,
onViewClick: function(vw, index, node, e) {
var arrayIndex = this.preClickSelections.indexOf(index);
if (arrayIndex != -1)
{
this.preClickSelections.splice(arrayIndex, 1);
this.view.clearSelections(true);
this.view.select(this.preClickSelections);
}
this.fireEvent('change', this, this.getValue(), this.hiddenField.dom.value);
this.hiddenField.dom.value = this.getValue();
this.fireEvent('click', this, e);
this.validate();
},
onViewBeforeClick: function(vw, index, node, e) {
this.preClickSelections = this.view.getSelectedIndexes();
if (this.disabled) {return false;}
},
onViewDblClick : function(vw, index, node, e) {
return this.fireEvent('dblclick', vw, index, node, e);
},
getValue: function(valueField){
var returnArray = [];
var selectionsArray = this.view.getSelectedIndexes();
if (selectionsArray.length == 0) {return '';}
for (var i=0; i<selectionsArray.length; i++) {
returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField != null)? valueField : this.valueField)));
}
return returnArray.join(this.delimiter);
},
setValue: function(values) {
var index;
var selections = [];
this.view.clearSelections();
this.hiddenField.dom.value = '';
if (!values || (values == '')) { return; }
if (!(values instanceof Array)) { values = values.split(this.delimiter); }
for (var i=0; i<values.length; i++) {
index = this.view.store.indexOf(this.view.store.query(this.valueField,
new RegExp('^' + values[i] + '$', "i")).itemAt(0));
selections.push(index);
}
this.view.select(selections);
this.hiddenField.dom.value = this.getValue();
this.validate();
},
reset : function() {
this.setValue('');
},
getRawValue: function(valueField) {
var tmp = this.getValue(valueField);
if (tmp.length) {
tmp = tmp.split(this.delimiter);
}
else{
tmp = [];
}
return tmp;
},
setRawValue: function(values){
setValue(values);
},
validateValue : function(value){
if (value.length < 1) { // if it has no value
if (this.allowBlank) {
this.clearInvalid();
return true;
} else {
this.markInvalid(this.blankText);
return false;
}
}
if (value.length < this.minLength) {
this.markInvalid(String.format(this.minLengthText, this.minLength));
return false;
}
if (value.length > this.maxLength) {
this.markInvalid(String.format(this.maxLengthText, this.maxLength));
return false;
}
return true;
}
});
Ext.reg("multiselect", Ext.ux.Multiselect);
Ext.ux.ItemSelector = Ext.extend(Ext.form.Field, {
msWidth:200,
msHeight:300,
hideNavIcons:false,
imagePath:"",
iconUp:"up2.gif",
iconDown:"down2.gif",
iconLeft:"left2.gif",
iconRight:"right2.gif",
iconTop:"top2.gif",
iconBottom:"bottom2.gif",
drawUpIcon:true,
drawDownIcon:true,
drawLeftIcon:true,
drawRightIcon:true,
drawTopIcon:true,
drawBotIcon:true,
fromStore:null,
toStore:null,
fromData:null,
toData:null,
displayField:0,
valueField:1,
switchToFrom:false,
allowDup:false,
focusClass:undefined,
delimiter:',',
readOnly:false,
toLegend:null,
fromLegend:null,
toSortField:null,
fromSortField:null,
toSortDir:'ASC',
fromSortDir:'ASC',
toTBar:null,
fromTBar:null,
bodyStyle:null,
border:false,
defaultAutoCreate:{tag: "div"},
initComponent: function(){
Ext.ux.ItemSelector.superclass.initComponent.call(this);
this.addEvents({
'rowdblclick' : true,
'change' : true
});
},
onRender: function(ct, position){
Ext.ux.ItemSelector.superclass.onRender.call(this, ct, position);
this.fromMultiselect = new Ext.ux.Multiselect({
legend: this.fromLegend,
delimiter: this.delimiter,
allowDup: this.allowDup,
copy: this.allowDup,
allowTrash: this.allowDup,
dragGroup: this.readOnly ? null : "drop2-"+this.el.dom.id,
dropGroup: this.readOnly ? null : "drop1-"+this.el.dom.id,
width: this.msWidth,
height: this.msHeight,
dataFields: this.dataFields,
data: this.fromData,
displayField: this.displayField,
valueField: this.valueField,
store: this.fromStore,
isFormField: false,
tbar: this.fromTBar,
appendOnly: true,
sortField: this.fromSortField,
sortDir: this.fromSortDir
});
this.fromMultiselect.on('dblclick', this.onRowDblClick, this);
if (!this.toStore) {
this.toStore = new Ext.data.SimpleStore({
fields: this.dataFields,
data : this.toData
});
}
this.toStore.on('add', this.valueChanged, this);
this.toStore.on('remove', this.valueChanged, this);
this.toStore.on('load', this.valueChanged, this);
this.toMultiselect = new Ext.ux.Multiselect({
legend: this.toLegend,
delimiter: this.delimiter,
allowDup: this.allowDup,
dragGroup: this.readOnly ? null : "drop1-"+this.el.dom.id,
//dropGroup: this.readOnly ? null : "drop2-"+this.el.dom.id+(this.toSortField ? "" : ",drop1-"+this.el.dom.id),
dropGroup: this.readOnly ? null : "drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,
width: this.msWidth,
height: this.msHeight,
displayField: this.displayField,
valueField: this.valueField,
store: this.toStore,
isFormField: false,
tbar: this.toTBar,
sortField: this.toSortField,
sortDir: this.toSortDir
});
this.toMultiselect.on('dblclick', this.onRowDblClick, this);
var p = new Ext.Panel({
bodyStyle:this.bodyStyle,
border:this.border,
layout:"table",
layoutConfig:{columns:3}
});
p.add(this.switchToFrom ? this.toMultiselect : this.fromMultiselect);
var icons = new Ext.Panel({header:false});
p.add(icons);
p.add(this.switchToFrom ? this.fromMultiselect : this.toMultiselect);
p.render(this.el);
icons.el.down('.'+icons.bwrapCls).remove();
if (this.imagePath!="" && this.imagePath.charAt(this.imagePath.length-1)!="/")
this.imagePath+="/";
this.iconUp = this.imagePath + (this.iconUp || 'up2.gif');
this.iconDown = this.imagePath + (this.iconDown || 'down2.gif');
this.iconLeft = this.imagePath + (this.iconLeft || 'left2.gif');
this.iconRight = this.imagePath + (this.iconRight || 'right2.gif');
this.iconTop = this.imagePath + (this.iconTop || 'top2.gif');
this.iconBottom = this.imagePath + (this.iconBottom || 'bottom2.gif');
var el=icons.getEl();
if (!this.toSortField) {
this.toTopIcon = el.createChild({tag:'img', src:this.iconTop, style:{cursor:'pointer', margin:'2px'}});
el.createChild({tag: 'br'});
this.upIcon = el.createChild({tag:'img', src:this.iconUp, style:{cursor:'pointer', margin:'2px'}});
el.createChild({tag: 'br'});
}
this.addIcon = el.createChild({tag:'img', src:this.switchToFrom?this.iconLeft:this.iconRight, style:{cursor:'pointer', margin:'2px'}});
el.createChild({tag: 'br'});
this.removeIcon = el.createChild({tag:'img', src:this.switchToFrom?this.iconRight:this.iconLeft, style:{cursor:'pointer', margin:'2px'}});
el.createChild({tag: 'br'});
if (!this.toSortField) {
this.downIcon = el.createChild({tag:'img', src:this.iconDown, style:{cursor:'pointer', margin:'2px'}});
el.createChild({tag: 'br'});
this.toBottomIcon = el.createChild({tag:'img', src:this.iconBottom, style:{cursor:'pointer', margin:'2px'}});
}
if (!this.readOnly) {
if (!this.toSortField) {
this.toTopIcon.on('click', this.toTop, this);
this.upIcon.on('click', this.up, this);
this.downIcon.on('click', this.down, this);
this.toBottomIcon.on('click', this.toBottom, this);
}
this.addIcon.on('click', this.fromTo, this);
this.removeIcon.on('click', this.toFrom, this);
}
if (!this.drawUpIcon || this.hideNavIcons) { this.upIcon.dom.style.display='none'; }
if (!this.drawDownIcon || this.hideNavIcons) { this.downIcon.dom.style.display='none'; }
if (!this.drawLeftIcon || this.hideNavIcons) { this.addIcon.dom.style.display='none'; }
if (!this.drawRightIcon || this.hideNavIcons) { this.removeIcon.dom.style.display='none'; }
if (!this.drawTopIcon || this.hideNavIcons) { this.toTopIcon.dom.style.display='none'; }
if (!this.drawBotIcon || this.hideNavIcons) { this.toBottomIcon.dom.style.display='none'; }
var tb = p.body.first();
this.el.setWidth(p.body.first().getWidth());
p.body.removeClass();
this.hiddenName = this.name;
var hiddenTag={tag: "input", type: "hidden", value: "", name:this.name};
this.hiddenField = this.el.createChild(hiddenTag);
this.valueChanged(this.toStore);
},
initValue:Ext.emptyFn,
toTop : function() {
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
var records = [];
if (selectionsArray.length > 0) {
selectionsArray.sort();
for (var i=0; i<selectionsArray.length; i++) {
record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
selectionsArray = [];
for (var i=records.length-1; i>-1; i--) {
record = records[i];
this.toMultiselect.view.store.remove(record);
this.toMultiselect.view.store.insert(0, record);
selectionsArray.push(((records.length - 1) - i));
}
}
this.toMultiselect.view.refresh();
this.toMultiselect.view.select(selectionsArray);
},
toBottom : function() {
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
var records = [];
if (selectionsArray.length > 0) {
selectionsArray.sort();
for (var i=0; i<selectionsArray.length; i++) {
record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
selectionsArray = [];
for (var i=0; i<records.length; i++) {
record = records[i];
this.toMultiselect.view.store.remove(record);
this.toMultiselect.view.store.add(record);
selectionsArray.push((this.toMultiselect.view.store.getCount()) - (records.length - i));
}
}
this.toMultiselect.view.refresh();
this.toMultiselect.view.select(selectionsArray);
},
up : function() {
var record = null;
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
selectionsArray.sort();
var newSelectionsArray = [];
if (selectionsArray.length > 0) {
for (var i=0; i<selectionsArray.length; i++) {
record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
if ((selectionsArray[i] - 1) >= 0) {
this.toMultiselect.view.store.remove(record);
this.toMultiselect.view.store.insert(selectionsArray[i] - 1, record);
newSelectionsArray.push(selectionsArray[i] - 1);
}
}
this.toMultiselect.view.refresh();
this.toMultiselect.view.select(newSelectionsArray);
}
},
down : function() {
var record = null;
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
selectionsArray.sort();
selectionsArray.reverse();
var newSelectionsArray = [];
if (selectionsArray.length > 0) {
for (var i=0; i<selectionsArray.length; i++) {
record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
if ((selectionsArray[i] + 1) < this.toMultiselect.view.store.getCount()) {
this.toMultiselect.view.store.remove(record);
this.toMultiselect.view.store.insert(selectionsArray[i] + 1, record);
newSelectionsArray.push(selectionsArray[i] + 1);
}
}
this.toMultiselect.view.refresh();
this.toMultiselect.view.select(newSelectionsArray);
}
},
fromTo : function() {
var selectionsArray = this.fromMultiselect.view.getSelectedIndexes();
var records = [];
if (selectionsArray.length > 0) {
for (var i=0; i<selectionsArray.length; i++) {
record = this.fromMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
if(!this.allowDup)selectionsArray = [];
for (var i=0; i<records.length; i++) {
record = records[i];
if(this.allowDup){
var x=new Ext.data.Record();
record.id=x.id;
delete x;
this.toMultiselect.view.store.add(record);
}else{
this.fromMultiselect.view.store.remove(record);
this.toMultiselect.view.store.add(record);
selectionsArray.push((this.toMultiselect.view.store.getCount() - 1));
}
}
}
this.toMultiselect.view.refresh();
this.fromMultiselect.view.refresh();
if(this.toSortField)this.toMultiselect.store.sort(this.toSortField, this.toSortDir);
if(this.allowDup)this.fromMultiselect.view.select(selectionsArray);
else this.toMultiselect.view.select(selectionsArray);
},
toFrom : function() {
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
var records = [];
if (selectionsArray.length > 0) {
for (var i=0; i<selectionsArray.length; i++) {
record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
selectionsArray = [];
for (var i=0; i<records.length; i++) {
record = records[i];
this.toMultiselect.view.store.remove(record);
if(!this.allowDup){
this.fromMultiselect.view.store.add(record);
selectionsArray.push((this.fromMultiselect.view.store.getCount() - 1));
}
}
}
this.fromMultiselect.view.refresh();
this.toMultiselect.view.refresh();
if(this.fromSortField)this.fromMultiselect.store.sort(this.fromSortField, this.fromSortDir);
this.fromMultiselect.view.select(selectionsArray);
},
valueChanged: function(store) {
var record = null;
var values = [];
for (var i=0; i<store.getCount(); i++) {
record = store.getAt(i);
values.push(record.get(this.valueField));
}
this.hiddenField.dom.value = values.join(this.delimiter);
this.fireEvent('change', this, this.getValue(), this.hiddenField.dom.value);
},
getValue : function() {
return this.hiddenField.dom.value;
},
onRowDblClick : function(vw, index, node, e) {
return this.fireEvent('rowdblclick', vw, index, node, e);
},
reset: function(){
range = this.toMultiselect.store.getRange();
this.toMultiselect.store.removeAll();
if (!this.allowDup) {
this.fromMultiselect.store.add(range);
this.fromMultiselect.store.sort(this.displayField,'ASC');
}
this.valueChanged(this.toMultiselect.store);
}
});
Ext.reg("itemselector", Ext.ux.ItemSelector);

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

View File

@ -0,0 +1,3 @@
2006-11-21 jvs:
ext-all.css contains all of the other css files combined and stripped of comments (except themes).

View File

@ -0,0 +1,61 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-panel-noborder .x-panel-body-noborder {
border-width:0;
}
.x-panel-noborder .x-panel-header-noborder {
border-width:0;
border-bottom:1px solid #99bbe8;
}
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
border-width:0;
border-bottom:1px solid #99bbe8;
}
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
border-width:0;
border-top:1px solid #99bbe8;
}
.x-window-noborder .x-window-mc {
border-width:0;
}
.x-window-plain .x-window-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-body-noborder {
border-width:0;
}
.x-tab-panel-noborder .x-tab-panel-header-noborder {
border-top-width:0;
border-left-width:0;
border-right-width:0;
}
.x-tab-panel-noborder .x-tab-panel-footer-noborder {
border-bottom-width:0;
border-left-width:0;
border-right-width:0;
}
.x-tab-panel-bbar-noborder .x-toolbar {
border-width:0;
border-top:1px solid #99bbe8;
}
.x-tab-panel-tbar-noborder .x-toolbar {
border-width:0;
border-bottom:1px solid #99bbe8;
}

View File

@ -0,0 +1,111 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*
Creates rounded, raised boxes like on the Ext website - the markup isn't pretty:
<div class="x-box-blue">
<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
<h3>YOUR TITLE HERE (optional)</h3>
<div>YOUR CONTENT HERE</div>
</div></div></div>
<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
</div>
*/
.x-box-tl {
background: transparent url(../images/default/box/corners.gif) no-repeat 0 0;
zoom:1;
}
.x-box-tc {
height: 8px;
background: transparent url(../images/default/box/tb.gif) repeat-x 0 0;
overflow: hidden;
}
.x-box-tr {
background: transparent url(../images/default/box/corners.gif) no-repeat right -8px;
}
.x-box-ml {
background: transparent url(../images/default/box/l.gif) repeat-y 0;
padding-left: 4px;
overflow: hidden;
zoom:1;
}
.x-box-mc {
background: #eee url(../images/default/box/tb.gif) repeat-x 0 -16px;
padding: 4px 10px;
font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;
color: #393939;
font-size: 12px;
}
.x-box-mc h3 {
font-size: 14px;
font-weight: bold;
margin: 0 0 4px 0;
zoom:1;
}
.x-box-mr {
background: transparent url(../images/default/box/r.gif) repeat-y right;
padding-right: 4px;
overflow: hidden;
}
.x-box-bl {
background: transparent url(../images/default/box/corners.gif) no-repeat 0 -16px;
zoom:1;
}
.x-box-bc {
background: transparent url(../images/default/box/tb.gif) repeat-x 0 -8px;
height: 8px;
overflow: hidden;
}
.x-box-br {
background: transparent url(../images/default/box/corners.gif) no-repeat right -24px;
}
.x-box-tl, .x-box-bl {
padding-left: 8px;
overflow: hidden;
}
.x-box-tr, .x-box-br {
padding-right: 8px;
overflow: hidden;
}
.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr {
background-image: url(../images/default/box/corners-blue.gif);
}
.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc {
background-image: url(../images/default/box/tb-blue.gif);
}
.x-box-blue .x-box-mc {
background-color: #c3daf9;
}
.x-box-blue .x-box-mc h3 {
color: #17385b;
}
.x-box-blue .x-box-ml {
background-image: url(../images/default/box/l-blue.gif);
}
.x-box-blue .x-box-mr {
background-image: url(../images/default/box/r-blue.gif);
}

View File

@ -0,0 +1,159 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-btn{
font:normal 11px tahoma, verdana, helvetica;
cursor:pointer;
white-space: nowrap;
}
.x-btn button{
border:0 none;
background:transparent;
font:normal 11px tahoma,verdana,helvetica;
padding-left:3px;
padding-right:3px;
cursor:pointer;
margin:0;
overflow:visible;
width:auto;
-moz-outline:0 none;
outline:0 none;
}
* html .ext-ie .x-btn button {
width:1px;
}
.ext-gecko .x-btn button {
padding-left:0;
padding-right:0;
}
.ext-ie .x-btn button {
padding-top:2px;
}
/*
Predefined css class for buttons with only icon. Add this class (x-btn-icon) and a class with a background-image
to your button for a button with just an icon.
e.g.
.my-class .x-btn-text { background-image: url(foo.gif); }
*/
.x-btn-icon .x-btn-center .x-btn-text{
background-position: center;
background-repeat: no-repeat;
height: 16px;
width: 16px;
cursor:pointer;
white-space: nowrap;
padding:0;
}
.x-btn-icon .x-btn-center{
padding:1px;
}
.x-btn em {
font-style:normal;
font-weight:normal;
}
/*
Button class for icon and text. Add this class (x-btn-text-icon) and a class with a background-image
to your button for both text and icon.
*/
.x-btn-text-icon .x-btn-center .x-btn-text{
background-position: 0 2px;
background-repeat: no-repeat;
padding-left:18px;
padding-top:3px;
padding-bottom:2px;
padding-right:0;
}
.x-btn-left, .x-btn-right{
font-size:1px;
line-height:1px;
}
.x-btn-left{
width:3px;
height:21px;
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 0;
}
.x-btn-right{
width:3px;
height:21px;
background:url(../images/default/button/btn-sprite.gif) no-repeat 0 -21px;
}
.x-btn-left i, .x-btn-right i{
display:block;
width:3px;
overflow:hidden;
font-size:1px;
line-height:1px;
}
.x-btn-center{
background:url(../images/default/button/btn-sprite.gif) repeat-x 0 -42px;
vertical-align: middle;
text-align:center;
padding:0 5px;
cursor:pointer;
white-space:nowrap;
}
.x-btn-over .x-btn-left{
background-position:0 -63px;
}
.x-btn-over .x-btn-right{
background-position:0 -84px;
}
.x-btn-over .x-btn-center{
background-position:0 -105px;
}
.x-btn-click .x-btn-center, .x-btn-menu-active .x-btn-center{
background-position:0 -126px;
}
.x-btn-disabled *{
color:gray !important;
cursor:default !important;
}
.x-btn-menu-text-wrap .x-btn-center {
padding:0 3px;
}
.ext-gecko .x-btn-menu-text-wrap .x-btn-center {
padding:0 1px;
}
.x-btn-menu-arrow-wrap .x-btn-center {
padding:0;
}
.x-btn-menu-arrow-wrap .x-btn-center button {
width:12px !important;
height:21px;
padding:0 !important;
display:block;
background:transparent url(../images/default/button/btn-arrow.gif) no-repeat left 3px;
}
.x-btn-with-menu .x-btn-center {
padding-right:2px !important;
}
.x-btn-with-menu .x-btn-center em {
display:block;
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 0;
padding-right:10px;
}
.x-btn-text-icon .x-btn-with-menu .x-btn-center em {
display:block;
background:transparent url(../images/default/toolbar/btn-arrow.gif) no-repeat right 3px;
padding-right:10px;
}
/* Toggle button styles */
.x-btn-pressed .x-btn-left{
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -63px;
}
.x-btn-pressed .x-btn-right{
background: url(../images/default/button/btn-sprite.gif) no-repeat 0 -84px;
}
.x-btn-pressed .x-btn-center{
background: url(../images/default/button/btn-sprite.gif) repeat-x 0 -126px;
}

View File

@ -0,0 +1,55 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-combo-list {
border:1px solid #98c0f4;
background:#ddecfe;
zoom:1;
overflow:hidden;
}
.x-combo-list-inner {
overflow:auto;
background:white;
position:relative; /* for calculating scroll offsets */
zoom:1;
overflow-x:hidden;
}
.x-combo-list-hd {
font:bold 11px tahoma, arial, helvetica, sans-serif;
color:#15428b;
background-image: url(../images/default/layout/panel-title-light-bg.gif);
border-bottom:1px solid #98c0f4;
padding:3px;
}
.x-resizable-pinned .x-combo-list-inner {
border-bottom:1px solid #98c0f4;
}
.x-combo-list-item {
font:normal 12px tahoma, arial, helvetica, sans-serif;
padding:2px;
border:1px solid #fff;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}
.x-combo-list .x-combo-selected{
border:1px dotted #a3bae9 !important;
background:#DFE8F6;
cursor:pointer;
}
.x-combo-noedit{
cursor:pointer;
}
.x-combo-list .x-toolbar {
border-top:1px solid #98c0f4;
border-bottom:0 none;
}
.x-combo-list-small .x-combo-list-item {
font:normal 11px tahoma, arial, helvetica, sans-serif;
}

View File

@ -0,0 +1,314 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.ext-el-mask {
z-index: 20000;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
background-color: #CCC;
width: 100%;
height: 100%;
zoom: 1;
}
.ext-el-mask-msg {
z-index: 20001;
position: absolute;
top: 0;
left: 0;
border:1px solid #6593cf;
background: #c3daf9 url(../images/default/box/tb-blue.gif) repeat-x 0 -16px;
padding:2px;
}
.ext-el-mask-msg div {
padding:5px 10px 5px 10px;
background: #eee;
border:1px solid #a3bad9;
color:#222;
font:normal 11px tahoma, arial, helvetica, sans-serif;
cursor:wait;
}
.ext-shim {
position:absolute;
visibility:hidden;
left:0;
top:0;
overflow:hidden;
}
.ext-ie .ext-shim {
filter: alpha(opacity=0);
}
.ext-ie6 .ext-shim {
margin-left: 5px;
margin-top: 3px;
}
.x-mask-loading div {
padding:5px 10px 5px 25px;
background: #fbfbfb url( '../images/default/grid/loading.gif' ) no-repeat 5px 5px;
line-height: 16px;
}
/* class for hiding elements without using display:none */
.x-hidden, .x-hide-offsets {
position:absolute;
left:-10000px;
top:-10000px;
visibility:hidden;
}
.x-hide-display {
display:none !important;
}
.x-hide-visibility {
visibility:hidden !important;
}
.x-masked {
overflow: hidden !important;
}
.x-masked select, .x-masked object, .x-masked embed {
visibility: hidden;
}
.x-layer {
visibility: hidden;
}
.x-unselectable, .x-unselectable * {
-moz-user-select: none;
-khtml-user-select: none;
}
.x-repaint {
zoom: 1;
background-color: transparent;
-moz-outline: none;
}
.x-item-disabled {
color: gray;
cursor: default;
opacity: .6;
-moz-opacity: .6;
filter: alpha(opacity=60);
}
.x-item-disabled * {
color: gray !important;
cursor: default !important;
}
.x-splitbar-proxy {
position: absolute;
visibility: hidden;
z-index: 20001;
background: #aaa;
zoom: 1;
line-height: 1px;
font-size: 1px;
overflow: hidden;
}
.x-splitbar-h, .x-splitbar-proxy-h {
cursor: e-resize;
cursor: col-resize;
}
.x-splitbar-v, .x-splitbar-proxy-v {
cursor: s-resize;
cursor: row-resize;
}
.x-color-palette {
width: 150px;
height: 92px;
cursor: pointer;
}
.x-color-palette a {
border: 1px solid #fff;
float: left;
padding: 2px;
text-decoration: none;
-moz-outline: 0 none;
outline: 0 none;
cursor: pointer;
}
.x-color-palette a:hover, .x-color-palette a.x-color-palette-sel {
border: 1px solid #8BB8F3;
background: #deecfd;
}
.x-color-palette em {
display: block;
border: 1px solid #ACA899;
}
.x-color-palette em span {
cursor: pointer;
display: block;
height: 10px;
line-height: 10px;
width: 10px;
}
.x-ie-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
background:#777;
zoom:1;
}
.x-shadow {
display: none;
position: absolute;
overflow: hidden;
left:0;
top:0;
}
.x-shadow * {
overflow: hidden;
}
.x-shadow * {
padding: 0;
border: 0;
margin: 0;
clear: none;
zoom: 1;
}
/* top bottom */
.x-shadow .xstc, .x-shadow .xsbc {
height: 6px;
float: left;
}
/* corners */
.x-shadow .xstl, .x-shadow .xstr, .x-shadow .xsbl, .x-shadow .xsbr {
width: 6px;
height: 6px;
float: left;
}
/* sides */
.x-shadow .xsc {
width: 100%;
}
.x-shadow .xsml, .x-shadow .xsmr {
width: 6px;
float: left;
height: 100%;
}
.x-shadow .xsmc {
float: left;
height: 100%;
background: transparent url( ../images/default/shadow-c.png );
}
.x-shadow .xst, .x-shadow .xsb {
height: 6px;
overflow: hidden;
width: 100%;
}
.x-shadow .xsml {
background: transparent url( ../images/default/shadow-lr.png ) repeat-y 0 0;
}
.x-shadow .xsmr {
background: transparent url( ../images/default/shadow-lr.png ) repeat-y -6px 0;
}
.x-shadow .xstl {
background: transparent url( ../images/default/shadow.png ) no-repeat 0 0;
}
.x-shadow .xstc {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -30px;
}
.x-shadow .xstr {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -18px;
}
.x-shadow .xsbl {
background: transparent url( ../images/default/shadow.png ) no-repeat 0 -12px;
}
.x-shadow .xsbc {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -36px;
}
.x-shadow .xsbr {
background: transparent url( ../images/default/shadow.png ) repeat-x 0 -6px;
}
.loading-indicator {
font-size: 11px;
background-image: url(../images/default/grid/loading.gif);
background-repeat: no-repeat;
background-position: left;
padding-left: 20px;
line-height: 16px;
margin: 3px;
}
.x-text-resize {
position: absolute;
left: -1000px;
top: -1000px;
visibility: hidden;
zoom: 1;
}
.x-drag-overlay {
width: 100%;
height: 100%;
display: none;
position: absolute;
left: 0;
top: 0;
background-image:url(../images/default/s.gif);
z-index: 20000;
}
.x-clear {
clear:both;
height:0;
overflow:hidden;
line-height:0;
font-size:0;
}
.x-spotlight {
z-index: 8999;
position: absolute;
top:0;
left:0;
-moz-opacity: 0.5;
opacity: .50;
filter: alpha(opacity=50);
background-color: #CCC;
width:0;
height:0;
zoom: 1;
}

View File

@ -0,0 +1,246 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-date-picker {
border: 1px solid #1b376c;
border-top:0 none;
background:#fff;
position:relative;
}
.x-date-picker a {
-moz-outline:0 none;
outline:0 none;
}
.x-date-inner, .x-date-inner td, .x-date-inner th{
border-collapse:separate;
}
.x-date-middle,.x-date-left,.x-date-right {
background: url(../images/default/shared/hd-sprite.gif) repeat-x 0 -83px;
color:#FFF;
font:bold 11px "sans serif", tahoma, verdana, helvetica;
overflow:hidden;
}
.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{
background:transparent !important;
vertical-align:middle;
}
.x-date-middle .x-btn .x-btn-text {
color:#fff;
}
.x-date-middle .x-btn-with-menu .x-btn-center em {
background:transparent url(../images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;
}
.x-date-right, .x-date-left {
width:18px;
}
.x-date-right{
text-align:right;
}
.x-date-middle {
padding-top:2px;padding-bottom:2px;
}
.x-date-right a, .x-date-left a{
display:block;
width:16px;
height:16px;
background-position: center;
background-repeat: no-repeat;
cursor:pointer;
-moz-opacity: 0.6;
opacity:.6;
filter: alpha(opacity=60);
}
.x-date-right a:hover, .x-date-left a:hover{
-moz-opacity: 1;
opacity:1;
filter: alpha(opacity=100);
}
.x-date-right a {
background-image: url(../images/default/shared/right-btn.gif);
margin-right:2px;
text-decoration:none !important;
}
.x-date-left a{
background-image: url(../images/default/shared/left-btn.gif);
margin-left:2px;
text-decoration:none !important;
}
table.x-date-inner {
width:100%;
table-layout:fixed;
}
.x-date-inner th {
width:25px;
}
.x-date-inner th {
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
text-align:right !important;
border-bottom: 1px solid #a3bad9;
font:normal 10px arial, helvetica,tahoma,sans-serif;
color:#233d6d;
cursor:default;
padding:0;
border-collapse:separate;
}
.x-date-inner th span {
display:block;
padding:2px;
padding-right:7px;
}
.x-date-inner td {
border: 1px solid #fff;
text-align:right;
padding:0;
}
.x-date-inner a {
padding:2px 5px;
display:block;
font:normal 11px arial, helvetica,tahoma,sans-serif;
text-decoration:none;
color:black;
text-align:right;
zoom:1;
}
.x-date-inner .x-date-active{
cursor:pointer;
color:black;
}
.x-date-inner .x-date-selected a{
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
border:1px solid #8db2e3;
padding:1px 4px;
}
.x-date-inner .x-date-today a{
border: 1px solid darkred;
padding:1px 4px;
}
.x-date-inner .x-date-selected span{
font-weight:bold;
}
.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a {
color:#aaaaaa;
text-decoration:none !important;
}
.x-date-bottom {
padding:4px;
border-top: 1px solid #a3bad9;
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
}
.x-date-inner a:hover, .x-date-inner .x-date-disabled a:hover{
text-decoration:none !important;
color:black;
background: #ddecfe;
}
.x-date-inner .x-date-disabled a {
cursor:default;
background:#eeeeee;
color:#bbbbbb;
}
.x-date-mmenu{
background:#eeeeee !important;
}
.x-date-mmenu .x-menu-item {
font-size:10px;
padding:1px 24px 1px 4px;
white-space: nowrap;
color:#000;
}
.x-date-mmenu .x-menu-item .x-menu-item-icon {
width:10px;height:10px;margin-right:5px;
background-position:center -4px !important;
}
.x-date-mp {
position:absolute;
left:0;
top:0;
background:white;
display:none;
}
.x-date-mp td {
padding:2px;
font:normal 11px arial, helvetica,tahoma,sans-serif;
}
td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn {
border: 0 none;
text-align:center;
vertical-align: middle;
width:25%;
}
.x-date-mp-ok {
margin-right:3px;
}
.x-date-mp-btns button {
text-decoration:none;
text-align:center;
text-decoration:none !important;
background:#083772;
color:white;
border:1px solid;
border-color: #3366cc #000055 #000055 #3366cc;
padding:1px 3px 1px;
font:normal 11px arial, helvetica,tahoma,sans-serif;
cursor:pointer;
}
.x-date-mp-btns {
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
}
.x-date-mp-btns td {
border-top: 1px solid #c5d2df;
text-align:center;
}
td.x-date-mp-month a,td.x-date-mp-year a {
display:block;
padding:2px 4px;
text-decoration:none;
text-align:center;
color:#15428b;
}
td.x-date-mp-month a:hover,td.x-date-mp-year a:hover {
color:#15428b;
text-decoration:none;
cursor:pointer;
background: #ddecfe;
}
td.x-date-mp-sel a {
padding:1px 3px;
background: #dfecfb url(../images/default/shared/glass-bg.gif) repeat-x left top;
border:1px solid #8db2e3;
}
.x-date-mp-ybtn a {
overflow:hidden;
width:15px;
height:15px;
cursor:pointer;
background:transparent url(../images/default/panel/tool-sprites.gif) no-repeat;
display:block;
margin:0 auto;
}
.x-date-mp-ybtn a.x-date-mp-next {
background-position:0 -120px;
}
.x-date-mp-ybtn a.x-date-mp-next:hover {
background-position:-15px -120px;
}
.x-date-mp-ybtn a.x-date-mp-prev {
background-position:0 -105px;
}
.x-date-mp-ybtn a.x-date-mp-prev:hover {
background-position:-15px -105px;
}
.x-date-mp-ybtn {
text-align:center;
}
td.x-date-mp-sep {
border-right:1px solid #c5d2df;
}

View File

@ -0,0 +1,75 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
.x-dd-drag-proxy{
position:absolute;
left:0;top:0;
visibility:hidden;
z-index:15000;
}
.x-dd-drag-ghost{
color: black;
font: normal 11px arial, helvetica, sans-serif;
-moz-opacity: 0.85;
opacity:.85;
filter: alpha(opacity=85);
border-top:1px solid #dddddd;
border-left:1px solid #dddddd;
border-right:1px solid #bbbbbb;
border-bottom:1px solid #bbbbbb;
padding:3px;
padding-left:20px;
background-color:white;
white-space:nowrap;
}
.x-dd-drag-repair .x-dd-drag-ghost{
-moz-opacity: 0.4;
opacity:.4;
filter: alpha(opacity=40);
border:0 none;
padding:0;
background-color:transparent;
}
.x-dd-drag-repair .x-dd-drop-icon{
visibility:hidden;
}
.x-dd-drop-icon{
position:absolute;
top:3px;
left:3px;
display:block;
width:16px;
height:16px;
background-color:transparent;
background-position: center;
background-repeat: no-repeat;
z-index:1;
}
.x-dd-drop-nodrop .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-no.gif);
}
.x-dd-drop-ok .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-yes.gif);
}
.x-dd-drop-ok-add .x-dd-drop-icon{
background-image: url(../images/default/dd/drop-add.gif);
}
.x-view-selector {
position:absolute;
left:0;
top:0;
width:0;
background:#c3daf9;
border:1px dotted #3399bb;
opacity: .5;
-moz-opacity: .5;
filter:alpha(opacity=50);
zoom:1;
}

View File

@ -0,0 +1,37 @@
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
#x-debug-browser .x-tree .x-tree-node a span {
color:#222297;
font-size:11px;
padding-top:2px;
font-family:"monotype","courier new",sans-serif;
line-height:18px;
}
#x-debug-browser .x-tree a i {
color:#FF4545;
font-style:normal;
}
#x-debug-browser .x-tree a em {
color:#999;
}
#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{
background:#c3daf9;
}
#x-debug-browser .x-tool-toggle {
background-position:0 -75px;
}
#x-debug-browser .x-tool-toggle-over {
background-position:-15px -75px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle {
background-position:0 -60px;
}
#x-debug-browser.x-panel-collapsed .x-tool-toggle-over {
background-position:-15px -60px;
}

Some files were not shown because too many files have changed in this diff Show More